1.选项文件的概念及作用

大多数MySQL程序能从选项文件(有时称为配置文件)中读取启动选项.运行程序时,为了不必在命令行输入常用选项,选项文件为确定这些常用选项提供了一个方便的途径.

为了决定程序是否读取选项文件,可以--help选项运行该程序.(对mysqld,使用--verbose和--help,二者缺一不可.)如果读取选项文件,返回的帮助信息会指示它将寻找哪个文件,以及遵从的选项组.

--注:

带有--no-defaults选项运行的mysql程序不会读取.mylogin.cnf外的选项文件.很多选项文件为文本编辑器创建的纯文本文件.但包含登录路径选项的.mylogin.cnf文件则是个例外,该文件为mysql_config_editor工具创建的加密文件.“登录路径(login path)”为一个只允许某些选项的选项组,例如:host,user,password,port和socket等.客户端程序通过--login-path选项确定从.mylogin.cnf读取登录路径.为了确定其他登录路径文件名,可以设置MYSQL_TEST_LOGIN_FILE环境变量,mysql-test-run.pl测试工具会使用该变量,但mysql_config_editor和mysql客户端,像:mysql,mysqladmin等,也可以识别使用该变量.

2.选项文件查找顺序

mysql将会按照下面列出的顺序寻找并读取存在的选项文件,如果不存在,可以使用合适的工具进行创建.

Windows上,mysql程序按照下面的顺序寻找选项文件,并从中读取启动选项(从前向后按序寻找和读取).

1)%WINDIR%\my.ini, %WINDIR%\my.cnf 全局选项

2)C:\my.ini, C:\my.cnf 全局选项

3)BASEDIR\my.ini,BASEDIR\my.cnf 全局选项

4)defaults-extra-file --defaults-extra-file选项确定的文件

5)%APPDATA%\MySQL\.mylogin.cnf 登录路径选项(仅客户端)

%WINDIR%表示windows系统目录的位置,其一般为c:\windows,可以用以下命令确定%WINDIR%环境变量的确切位置:

C:\> echo %WINDIR%

%APPDATA%表示windows应用数据目录,可以用以下的命令确定%APPDATA%环境变量的确切位置:

C:\> echo %APPDATA%

BASEDIR表示mysql基安装目录.当用mysql installer安装mysql5.7时,其典型为“C:\PROGRAMDIR\MySQL\MySQL 5.7 Server”目录,这里PROGRAMDIR表示程序目录(通常为windows英文版的程序文件).

Unix和类Unix系统上,mysql程序按照下面列出的顺序寻找选项文件,并从中读取启动选项(从前向后按序寻找和读取)

--注:

Unix平台上,mysql忽略拥有通用写权限的配置文件.这主要出于安全考虑.

1)/etc/my.cnf 全局选项

2)/etc/mysql/my.cnf 全局选项

3)SYSCONFDIR/my.cnf 全局选项

4)$MYSQL_HOME/my.cnf 针对服务器特定的选项(仅服务器)

5)defaults-extra-file --defaults-extra-file选项确定的文件

6)~/.my.cnf 针对用户特定的选项

7)~/.mylogin.cnf 针对用户特定的登录路径(login path)选项(仅客户端)

前述中,“~”表示当前用户的主目录($HOME的值).

SYSCONFDIR表示编译mysql时SYSCONFDIR选项指定的目录.默认时,其为编译时指定安装目录下的etc目录.

MYSQL_HOME为指向包含服务器特定mysql.cnf文件所在目录的环境变量.如果没有设置MYSQL_HOME,且通过mysqld_safe程序启动mysql,则mysqld_safe将其设定为BASEDIR,也就是mysql的安装基目录.

虽然DATADIR可能因为平台或安装方法不同的不同,但其通常为/usr/local/mysql/data. 该值为编译mysql时指定的数据目录位置,而非启动mysql时--datadir选项指定的位置.运行时指定--datadir不会影响服务器处理任何选项前寻找和读取的选项文件.

3.选项文件语法及填写规则

如果某个选项在选项文件中被指定了多次,则以最后一次为准,但对mysqld来说有个特例,处于安全考虑,--user选项则以第一次指定值为准,这样可以防止选项文件中指定的用户被命令行覆盖掉.

下述选项文件的语法使用手工编辑的文件.但不包括.mylogin.cnf,其通过mysql_config_editor创建和加密.运行mysql程序时可以在命令行指定的任何长选项,都可以在选项文件中指定.为了得到某个程序可用选项,使用--help选项运行该程序.(mysqld得用--verbose和--help两个选项).

选项文件中确定选项的语法和命令行语法类似.但选项文件中,需要去掉选项名前面的两个破折号且每行只确定一个选项.例如:命令行的--quick和--host=localhost选项,在选项文件中应该分别在独立行中确定为quick和host=localhost.为了在选项文件中确定

--loose-opt_name,应该写为loose-opt_name.

选项文件中的空行将被忽视.非空行可以为如下格式:

• #comment, ;comment

注释行以#或;开始.一个#注释也可以在一行中间开始.Comment lines start with # or ;. A # comment can start in the middle of a line as well.

• [group]

group为程序或想为其设置选项的组的名字.group行后,任何设置选项行将会应用于被命名的group,直到选项文件末尾或另一个group行被设置.选项group名大小写不敏感.

• opt_name

--opt_name命令行选项的等同物.

• opt_name=value

命令行--opt_name=value的等同物. 选项文件中,"="旁边可以有空格,但命令行则不行.其后的值可以选择是否用单引号或双引号括起来,当选项值中包含"#"等特殊字符时会用到.

选项名和值前后的空格将被自动删掉.其中,可以在选项值中用转义序列 \b, \t, \n, \r, \\, 和\s等表示空格,tab键,新行,回车,反斜杠和空格等.选项文件中,下列转义规则将适用:

• 反斜杠后跟一个有效序列字符被转换成序列表示的字符.例如:\s被转换成空格.

• 反斜杠后不跟有效转义序列字符将保持不变.例如:\S依然为\S.

前述规则意味着文本反斜杠可以用\\表示,或当后面不跟一个有效转义序列字符时用\表示.

选项文件中的转义序列规则与SQL语句中文本串中的转义序列规则不同.

后者上下文中,如果"x"不是一个有效的转义序列字符,\x将变为"x"而非\x.选项文件值的转义规则尤其与windows路径名相关,其用\作为一个路径名分隔符.如果后面跟一个转义序列字符,windows路径名分隔符必须被写成\\.否则,可以写成\\或\.或者,/也可以用作windows路径名且将被认作\.假设像在选项文件中用“C:\Program Files\MySQL\MySQL Server 5.7”做基目录.可以有多个方法.例如:

basedir="C:\Program Files\MySQL\MySQL Server 5.7"

basedir="C:\\Program Files\\MySQL\\MySQL Server 5.7"

basedir="C:/Program Files/MySQL/MySQL Server 5.7"

basedir=C:\\Program\sFiles\\MySQL\\MySQL\sServer\s5.7

如果选项group名和程序名相同,该group中的选项将用于该程序.例如:[mysqld]和[mysql]groups将会分别应用于mysqld服务器和mysql客户端程序.

[client]选项group将被mysql发布版本中提供的所有客户端(但不包括mysqld)读取.

[client]group使得用户可以为所有的客户端确定选项.例如:[client]适于用来指定连接服务器的口令.(但要确定只有你可以存取该选项文件,以防口令泄露.除非某个选项能被所有客户端程序使用,否则,不要讲该选项放于[client]group.如果某个程序不能识别该选项,当你运行时将显示错误信息后退出.选项文件中,应该将更通用的选项组放在前面,而更特定的组放在后面.例如:[client]group更通用,因为所有客户端程序将读取,而[mysqldump]group只被mysqldump读取.后面确定的将会覆盖前面确定的同个选项的值,因此,按照先[client]后[mysqldump]的顺序将使mysqldump特定选项覆盖[client]选项.下面为一个典型的全局选项文件:

[client]

port=3306

socket=/tmp/mysql.sock

[mysqld]

port=3306

socket=/tmp/mysql.sock

key_buffer_size=16M

max_allowed_packet=8M

[mysqldump]

quick

下面为一个典型的用户选项文件:

[client]

# The following password will be sent to all standard MySQL clients

password="my password"

[mysql]

no-auto-rehash

connect_timeout=2

为了创建确定mysql版本系列mysqld服务器读取的选项groups,使用[mysqld-5.6], [mysqld-5.7]等名字的groups.下面的group指示mysql 5.7.x版本的servers使用sql_mode设置:

[mysqld-5.7]

sql_mode=TRADITIONAL

4.嵌套包含选项文件方法及指令

选项文件中可以使用!include指令来包含其他选项文件,以及!includedir搜索特定目录作为选项文件.例如:为了包含/home/mydir/myopt.cnf文件,用如下指令:

!include /home/mydir/myopt.cnf

为了搜索/home/mydir目录和读取发现的选项文件,用如下指令:

!includedir /home/mydir

mysql并不保证该目录中选项文件被读取的顺序.

--注:

unix操作系统上,任何被发现及用!includedir指令包含的任何文件都必须有以“.cnf”结尾的文件名.windows,该指令将检查带".ini"或"cnf"扩展名的文件.

被包含选项文件的内容与任何其他选项文件类似.即,其应该包含选项groups,每个group以[group]行开始,以指示这些选项将应用的程序.

当被包含文件被处理时,仅当前程序正寻找的groups中的那些选项被用.其他group将被忽略.假设my.cnf文件包含如下行:

!include /home/mydir/myopt.cnf

且假设/home/mydir/myopt.cnf如下所示:

[mysqladmin]

force

[mysqld]

key_buffer_size=16M

如果my.cnf被mysqld处理,仅/home/mydir/myopt.cnf中的[mysqld] group被用.如果文件被mysqladmin处理,则仅[mysqladmin]group被用.如果文件被其他程序处理,则/home/mydir/myopt.cnf中的选项都不被用.

如果一个选项文件包含!include或!includedir指令,当选项文件被处理时,无论指令出现于文件的什么位置,指令指示的文件都将被处理.

mysql参数文件选项组_选项文件(Option Files)/配置文件(Configuration Files)的使用相关推荐

  1. mysql参数文件选项组_my.cnf文件关于组选项的总结

    my.cnf文件关于组选项的总结 发布时间:2020-08-16 18:22:28 来源:ITPUB博客 阅读:110 作者:lusklusklusk 1.[server]和[mysqld]的区别,没 ...

  2. linux中文件权限 组,linux中文件权限格式与chmod命令以及用户和用户组的管理

    简单了解一下linux中的文件权限格式与chmod命令 chmod命令:改变文件或者目录的权限 格式:chmod [参数] [] -R 或者--recursive 递归处理,表示将指定目录下的所有文件 ...

  3. plsql窗口文件怎么找回_电脑文件丢失怎么找回?知道原因和方法很关键

    电脑文件丢失怎么找回?对于使用电脑进行办公的大家伙都知道,很多重要或者临时文件存储在上面.在使用电脑的时候,可能因为自己的"强迫症".想要电脑运行的速度更加快捷或者因为其它的原因, ...

  4. python程序文件是什么_.py文件是什么?

    展开全部 .py文件是python的脚本文件. Python在执行时,首先会将.py文件中的62616964757a686964616fe59b9ee7ad9431333431363039源代码编译成 ...

  5. 计算机垃圾回收站内容怎么恢复,回收站的文件怎么恢复_回收站文件清空了怎么恢复-win7之家...

    在电脑上,我们有时需要清理一些垃圾文件,但会不小心把重要文件也一起给清理了,虽说删除的文件都跑到了回收站,就是把回收站给清空了,那么回收站文件清空了怎么恢复呢,下面小编给大家分享回收站的文件被清空恢复 ...

  6. windows 文件夹备份_如何使用D7备份配置文件,修复和调整Windows设置

    windows 文件夹备份 D7 is a very useful, free tool for maintaining, repairing, and tweaking Windows, assis ...

  7. rsync文件实时同步_从文件同步rsync算法谈起

    之前在某个产品中使用了Gossip算法进行数据库数据的同步,但是在新的产品中有个需求,就是当文件变化时,(由于文件比较大,比较多)支持增量推送到文件服务器上.于是想到了Unix下的rsync算法,本文 ...

  8. 所属文件不可访问_日志文件写入失败(permission denied)

    用过Laravel的小伙伴一开始安装完框架后可能都遇到过daily 日志文件写入失败的问题,接下来我们就来详细说下日志文件写入失败的原因以及对应的解决方案. 在讲这个问题之前可能需要简单介绍下Linu ...

  9. java文件绝对路径_获取文件夹文件绝对路径

    引用   linuxpro https://zhidao.baidu.com/question/59940919.html?fr=iks&word=DOS+%C3%FC%C1%EE&i ...

最新文章

  1. php 不可以连接远程mysql数据库
  2. [Java,MVC] Eclipse下搭建Spring MVC
  3. 谈谈2018年区块链大事件
  4. oracle把多行合并成字符串,怎样将Oracle多行转换成字符串?
  5. C语言case字句有什么作用,switch case 语句的使用规则
  6. php 可视化neo4j,开源图形数据库Neo4j使用 php开发
  7. ubuntu网站收集
  8. 三月磨一剑---也来晒晒我们的开发产品 欢迎拍砖
  9. TypeScript内置对象
  10. session的创建方式
  11. pythonmapdel_地质男转行学遥感Python——遥感数据裁剪的具体实现
  12. 如何预置apk(MTK6589)
  13. simulink积分器报错
  14. Linux-3.10-x86_64 内核配置选项简介
  15. lagrange量中的u和v的来历
  16. 面试-03-数据库和事务专题
  17. java修改mtu值_windows XP系统怎么通过 CMD 系统修改 MTU 值?
  18. hive_hbase一个综合练习题目总共包括以下部分
  19. 成为专业程序员路上用到的各种优秀资料、神器及框架
  20. 每日刷题记录(十六)

热门文章

  1. iOS - appledoc 文档生成
  2. iOS - OC Block 代码块
  3. cuda_opencv 矩阵相加
  4. solrj 使用记录 - 添加文档
  5. HTML中的转义字符 (转)
  6. 最新网众 2490(XP) 客户端 去百度 去劫持 去快车
  7. SOA也是一种设计模式
  8. python 删除list中的第一个元素
  9. python 获取公网 外网 ip 几种方式
  10. python3 hashlib加密库 md5 sha1 sha256 sha384 sha512 加盐