命令行上使用的选项
在命令行中指定有值的启动选项时需要注意,选项名,= ,选项值之间不可以有空白字符,比如
mysqld --default-storage-engine = MyISAM 这种写法就是错误的。
mysql使用长形式选项时,在选项名前面加两个短划线-- ,不同的是,使用短形式选项时在选项名前面只需要加一个短划线-,使用短形式选项时,选项名和选项值之间可以没有空隙(-p选项特殊除外)
–host -h
–user -u
–password -p
–port -p
–version -v
配置文件中使用的选项
配置文件中的启动选项被划分为若干个组,每个组有一个组名,用中括号[]括起来。
在配置文件中只能使用长形式的选项,而且在配置文件中指定的启动选项不允许加–前缀。=周围可以有空白字符(注意命令行中选项 ,= ,选项值不能有空白字符。)
程序对应类别和能读取的分组
mysqld [mysqld] [server]
mysqld_safe [mysqld] [server] [mysqld_safe]
mysql [mysql] [client]
mysql.server [mysqld] [server] [mysql.server]
mysqldadmin [mysqladmin] [client]
mysqldump [mysqldump] [client]
[server]组下面的启动选项将作用于所有的服务器程序
[client] 组下面的启动选项将作用于所有的客户端程序
专用选项组
比如定义一个[mysqld-5.7] 含义和[mysqld]一样,只不过只有版本号5.7的mysqld程序才能使用这个选项组中的选项。
配置文件优先级
配置文件的读取顺序
mysqld依次读取下面四个配置文件
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/mysql/etc/my.cnf
~/.my.cnf
可以通过
/usr/local/mysql8/bin/mysqld --verbose --help |grep -A1 "Default options"
确认配置文件的读取顺序
如果我们在多个配置文件中设置了相同的启动选项,则以最后一个配置文件中的为准。
同一个配置文件中多个组的优先级
将以最后一个出现的组中的启动选项为准。
注意:如果同一个启动选项既出现在命令行中,又出现在配置文件中,那么以命令行中的启动选项为准。