4.3.2. 使用选项文件

MySQL程序可以从选项文件(有时也称为配置文件)读取启动选项。选项文件提供了一种很方便的方式来指定常用的选项,因此不需要每次运行程序时从命令行输入。

下面的程序支持选项文件:myisamchk、myisampack、mysql、mysql.server、mysqladmin、mysqlbinlog、mysqlcc、mysqlcheck、mysqld_safe、mysqldump、mysqld、mysqlhotcopy、mysqlimport和mysqlshow。

注释:MySQL簇程序使用的选项文件参见17.4节,“MySQL簇的配置”。

在Windows中,MySQL程序从以下文件读取启动选项:

文件名

目的

WINDIR\my.ini

全局选项

C:\my.cnf

全局选项

INSTALLDIR\my.ini

全局选项

defaults-extra-file

用--defaults-extra-file=path指定的文件,如果有

WINDIR表示Windows目录的位置。通常为C:\WINDOWS或C:\WINNT。你可以使用下面的命令通过环境变量WINDIR的值确定其确切位置:C:\>echo %WINDIR%

INSTALLDIR表示MySQL的安装目录。一般为C:\PROGRAMDIR\MySQL\MySQL 5.1 Server,其中PROGRAMDIR表示程序目录(通常为Windows英文版的Program Files),MySQL 5.1的安装是根据安装和配置向导完成的。参见2.3.5.14节,“my.ini文件的位置”。

在Unix中,MySQL程序从下面的文件读取启动选项:

文件名

目的

/etc/my.cnf

全局选项

$MYSQL_HOME/my.cnf

服务器相关选项

defaults-extra-file

用--defaults-extra-file=path指定的文件,如果有

~/.my.cnf

用户相关选项

MYSQL_HOME是一个环境变量,包含服务器相关的my.cnf文件驻留的目录路径。

如果未设置MYSQL_HOME,并且DATADIR中有一个my.cnf文件,BASEDIR中没有my.cnf文件,mysqld_safe将MYSQL_HOME设置为DATADIR。否则,如果未设置MYSQL_HOME并且在DATADIR中没有my.cnf,则mysqld_safe将MYSQL_HOME设置为BASEDIR。

典型情况二进制安装的目录为/usr/local/mysql/data或源代码安装的目录为/usr/local/var。请注意这是配置时指定的数据目录的位置,而不是 mysqld启动时用--datadir指定的。运行时使用--datadir对寻找选项文件的服务器没有效果,因为服务器在处理命令行参量之前寻找这些选项。

MySQL按照上述顺序寻找选项文件,并读存在的选项文件。如果你想要使用的某个选项文件不存在,则用明文文本编辑器创建。如果存在多个选项文件,文件中指定的后读取的选项要优先文件中指定的先读取的选项。

注释:在Unix平台上,MySQL忽略人人可写的配置文件。这是故意的,是一个安全措施。

任何可以在运行MySQL程序时在命令行给出的长选项也可以在选项文件中给出。要想列出程序的适用选项,用--help选项运行程序。

在选项文件中指定选项的语法类似于命令行语法,例外的是要忽略掉两个破折号。例如,命令行中的--quick或--host=localhost在选项文件中应指定为quick或host=localhost。要想在选项文件中指定--loose-opt_name形式的选项,应写为loose-opt_name。

选项文件中的空行被忽略掉。非空行可以采用下面任何形式:

·#注释,;注释

注释行以‘#’或‘;’开头。‘#’注释也可以从行的中部开始。

·[group]

group是你想要设置选项的程序名或组名。在组行后面,任何opt_name或set-variable行适用于组名,直到选项文件结尾或给出其它组行。

·opt_name

等价于命令行中的--opt_name。

·opt_name=value

等价于命令行中的--opt_name=value。在选项文件中,‘=’字符附近可以有空格,而在命令行中是不允许的。你可以用单引号或双引号来引用值。如果值包含一个‘#’注释字符或空格时很有用。

选项名和值前后的空白将自动删除掉。你可以在选项值中使用转义序列‘\b’、‘\t’、‘\n’、‘\r’、‘\\’以及‘\s’来表示退格、tab、换行符、回车以及空格字符。

在Windows中,如果某个选项值表示一个路径名,应使用‘/’而不是‘\’作为路径名间隔符来指定值。如果使用‘\’,必须用双斜线‘\\’,因为‘\’在MySQL中为转义字符。

如果选项组名与程序名相同,则组内的选项专用于该程序。

所有客户程序(但不能被mysqld)读取[client]选项组。这样允许你指定适用于所有客户端的选项。例如,[client]是用于指定连接服务器的 密码的理想的组。(但应确保该选项文件只能由你自己读写,以便其他人不能发现你的密码)。一定不要随意在[client]组内放置选项,除非它可以被你使用的所有客户程序识别。如果你试图运行程序,如果程序不理解选项则会显示一条错误消息后退出。

从5.0系列的MySQL 5.0.4开始,可以在选项文件中使用!include指令来包括具体文件和!includedir来搜索选项文件的具体目录。例如,要包括文件/home/mydir/myopt.cnf,可以使用:!include /home/me/myopt.cnf

要搜索所有以.cnf结尾的文件的目录/home/mydir并作为选项文件读取,应使用:!includedir /home/mydir

请注意这些选项与节有关。例如,假定你想要使用my.cnf中的某些内容,如下所示:[mysqld]!include /home/mydir/myopt.cnf

在这种情况下,只为该服务器处理文件myopt.cnf,并且!include指令将被客户应用程序忽略。然而,如果你使用下面的部分:[mysqldump]!includedir /home/mydir/my-dump-option

则只有mysqldump为以.cnf结尾的文件检查目录/home/mydir/my-dump-option,服务器或其它客户应用程序均不检查。

注释:目前,在Unix操作系统中,所发现的使用!includedir指令包括的文件的文件名必须以.cnf为扩展名。在Windows中,该指令也为有.ini扩展名(包括.cnf)的文件做检查。

如果你想要创建只由一个具体mysqld服务器发布系列读取的选项组,选项组可以用[mysqld-5.0]、[mysqld-5.1]等名称。下面的组表示--new选项只能用于5.1.x版本的MySQL服务器:[mysqld-5.1]new

下面是一个典型的全局选项文件:[client]port=3306socket=/tmp/mysql.sock[mysqld]port=3306socket=/tmp/mysql.sockkey_buffer_size=16Mmax_allowed_packet=8M[mysqldump]quick

在上述的选项文件中,设置key_buffer_size和max_allowed_packet变量的行使用了var_name=value语法。

下面是一个典型的用户选项文件:[client]# The following password will be sent to all standard MySQL clientspassword="my_password"[mysql]no-auto-rehashconnect_timeout=2[mysqlhotcopy]interactive-timeout

如果你有一个源代码分发,可以从support-file目录中找到名为my-xxxx.cnf的示例选项文件。如果你有一个二进制分发,在MySQL安装目录的support-file目录中查找。在Windows中,示例选项文件也可以位于MySQL的安装目录(如果你不知道在哪里,查阅本节前面或第2章:安装MySQL)。目前有小、中等、大以及非常大的系统的示例选项文件。要想练习这些文件,在Windows中复制到C:\my.cnf或在Unix中复制到根目录的.my.cnf。

注释:在Windows中,可以不显示.cnf选项文件的扩展名。

所有支持选项文件的MySQL程序可以处理下面的命令行选项:

·--no-defaults

不读取任何选项文件。

·--print-defaults

打印从选项文件中获得的程序名和所有选项。

·--defaults-file=path_name

只使用给出的选项文件。path_name是文件的全路径名。

·--defaults-extra-file=path_name

在全局选项文件后但在用户选项文件前读该选项文件。path_name是文件的全路径名。

为了正确工作,每个选项必须紧随命令行中的命令名后,例外情况是--print-defaults可以紧随--defaults-file或--defaults-extra-file。

在shell脚本中,可以使用my_print_defaults程序来分析选项文件。下面的例子显示了当要求显示[client]和[mysql]组内发现的选项时my_print_defaults产生的输出:shell>my_print_defaults client mysql--port=3306--socket=/tmp/mysql.sock--no-auto-rehash

开发人员请注意:在C客户程序库中,只是通过处理命令行参量前面的所有匹配选项(即相应组内的选项)来处理选项文件。对于使用多次指定的最后的选项实例的程序,可以很好地工作。如果你有一个C或C++程序按这种方式处理多次指定的选项,但不读取选项文件,只需要添加两行来实现该功能。检查标准MySQL客户程序的源代码来看看如何做。

其它几个MySQL语言接口基于C客户库,它们中的一部分提供了访问选项文件的一种方式。包括Perl和Python。关于接口的详细信息参见相关文档。

4.3.3. 用环境变量指定选项

要想用环境变量指定选项,使用适用注释处理器的语法来设置变量。例如,在Windows或NetWare中,可以设置USER变量来指定MySQL账户名。要想实现,使用语法:SET USER=your_name

在Unix中的语法取决于你的外壳。假定你想要使用MYSQL_TCP_PORT变量指定TCP/IP端口号。典型的语法为(例如sh、bash、zsh等等):MYSQL_TCP_PORT=3306export MYSQL_TCP_PORT

第1个命令设置变量,export命令将变量导出到外壳环境,以便其值可供MySQL和其它进程访问。

csh和tcsh有类似的问题。运行这些外壳时,使用setenv使外壳变量适用环境:setenv MYSQL_TCP_PORT 3306

可以在命令提示符下执行设置环境变量的命令,以便立即生效。这些设定值持续到你注销。要向让这些设定值在你每次登录时生效,将相应命令放入每次启动时命令解释符所读的启动文件中。在Windows中典型启动文件为AUTOEXEC.BAT,bash为.bash_profile,或者tcsh为.tcshrc。关于命令解释符的具体细节请查阅文档。

附录F:环境变量了列出影响MySQL程序操作的所有环境变量。

mysql程序选项有两种通用形式:长选项和短选项_MySQL程序概述相关推荐

  1. C语言有符号 存储,【填空题】在C语言中,对于整型变量采用有符号数和_________数两种存储形式。...

    [填空题]在C语言中,对于整型变量采用有符号数和_________数两种存储形式. 更多相关问题 [单选] 肝内胆管结石和肝内钙化灶的超声鉴别要点是:①前者比后者大.②前者为强回声,后方声影明显:后者 ...

  2. STM32_基础入门_程序下载的两种方式

    一.ISP串口下载 1.所涉及工具:MDK+FlyMcu 2.硬件连接 3.连接步骤 1.搜索并选择对应串口 2.选择要下载的hex文件,将"编程前重装文件"打勾 3.勾选&quo ...

  3. mysql 时间查询_两种常用MySql查询时间段的方法

    MySql查询时间段的方法很多,下面就为您介绍几种最常用的MySql查询时间段方法,如果您在MySql查询时间段方面遇到过问题,不妨一看. MySql的时间字段有date.time.datetime. ...

  4. mysql安装文件格式_一、安装方式       MySQL安装文件分为两种,一种是MSI格式的,一种是ZIP格式的。下面来看看这两种方式:       MSI格式的可以直接点击安...

    一.安装方式 MySQL安装文件分为两种,一种是MSI格式的,一种是ZIP格式的.下面来看看这两种方式: MSI格式的可以直接点击安装,按照它给出的安装提示进行安装,Windows操作系统下一般MyS ...

  5. memcached 穿透mysql_memcached 和 mysql 结合使用的两种实现选择?

    memcached 和 mysql 结合使用的两种实现选择? 这是我在知乎上抛出的一个问题"我们的应用已经决定采mysql+memcached 的方式,针对的数据库版本是 mysql 5.1 ...

  6. 返回键捕获 应用程序退出的两种方式(转)

    作为应用程序一个较好的用户体验应该是:在退出应用程序前询问用户是否真正退出?目前普遍做法是,一在退出前询问是否真正退出,二是连续按两下退出. 返回键捕获 应用程序退出的两种方式 实现上述两种应用退出方 ...

  7. dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法

    本文主要向大家介绍了MySQL数据库之c#mysql批量更新的两种方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 总体而言update 更新上传速度还是慢. 1:  简单的 ...

  8. java制作oracle程序,Java程序操作Oracle两种方式之简单实现

    Java程序操作Oracle两种方式之简单实现 1.通过JDBC-ODBC桥连接Oracle数据库 (1)创建odbc源,在控制面板->管理工具->数据源(odbc)中添加DSN,比如取名 ...

  9. 修改mysql数据库默认字符集_MySQL数据库之修改mysql默认字符集的两种方法详细解析...

    本文主要向大家介绍了MySQL数据库之修改mysql默认字符集的两种方法详细解析 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. (1) 最简单的修改方法,就是修改mysql的m ...

最新文章

  1. Adobe Illustrator CS6 界面文字按钮太小,高分屏win10PS/AI等软件界面字太小解决方法
  2. 在虚拟机装一个linux系统
  3. 自定义控件学习,优秀网站推荐
  4. 根据F12在页面中调整div的大小
  5. 【水】uva10037 过桥
  6. 《深入浅出DPDK》读书笔记(一):基础部分知识点
  7. 采用C编写程序实现从文件读取操作
  8. 【Webcam设计】利用底层V4L2+OPENCV进行图像处理以及移植策略
  9. 拓端tecdat|数据告诉你:互联网哪个职位最有前途?
  10. python怎么实现模块化_python模块化编程与简单模块实现
  11. 一个优秀的硬件工程师要具备的能力
  12. 春天里,程序猿宅男的“桃花”怎么开
  13. 公众号600篇文章分类和索引
  14. WindowsMobile6之“HTC Touch” - iphone的强大竞争对手
  15. 更加安全便捷的印章管理——区块链电子印章
  16. cearte-react-app中craco中优雅引入svg【自定义宽、高、颜色,仅需5步】
  17. Pytorch 学习日记(一)
  18. 简单的python装b代码_一秒学会,小白也能上手,最简单的装逼代码
  19. AIX下创建jfs2文件系统并挂载到固定目录
  20. 使用计算机小窍门,电脑使用的小技巧(适用小白)

热门文章

  1. 导入下载excel(还有excel多个sheet)和txt文本的方法
  2. PostMan测试http请求
  3. 天齐锂业通过聆讯:将实现“A+H”两地上市,募资主要用来还债
  4. 虚拟机没有网络教你如何解决
  5. Linux没有网怎么解决。
  6. HTML实现简单的网页设计。
  7. 三面字节跳动被虐得“体无完肤”,15天读完这份pdf,终拿下美团研发岗offer
  8. Python简单词云的制作
  9. hdu 1859 最小长方形
  10. 安装系统-win 10