我这里以MySQL5.7为例,实际上每个版本的MySQL都提供了mysql.server脚本,mysql.server是MySQL官方提供的一个脚本,用于管理MySQL服务的启动、停止和重启操作,该脚本实际调用的是mysqld_safe命令。官方文档:https://dev.mysql.com/doc/refman/5.7/en/mysql-server.html
如果你当前使用wlnmp一键安装包安装的MySQL5.7版本,那么默认/etc/init.d/下MySQL的启动脚本就是使用的mysql.server,只不过是重新命名为mysql或mysql57。
如果你使用官方的二进制包安装的,在mysql的support-files目录下同样也存在mysql.server脚本
mysql.server配置
1 2 3 4 5 6 |
basedir= #MySQL安装的目录 datadir= #MySQL数据文件所在目录 mysqld_pid_file_path= #指定MySQL的PID文件 bindir= #MySQL的bin目录 lockdir= #MySQL锁目录 lock_file_path= #MySQL锁完整目录 |
my.cnf启动顺序
mysql.server脚本启动时,默认查找my.cnf文件顺序如下:
/etc/my.cnf → /etc/mysql/my.cnf → /usr/local/mysql/etc/my.cnf → ~/.my.cnf
所以,如果你想不按照这个顺序去查找my.cnf则需要注释脚本中的以下内容
1 |
parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server` |
大概在240行左右,在行首添加#号注释,注释掉后在mysqld_safe指定my.cnf,那么此时的my.cnf文件优先级最高。
指定mysqld_safe启动参数
在默认的脚本中,mysqld_safe启动时,没有指定my.cnf文件位置的。
大概在266行左右,即
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
使用--defaults-file指定my.cnf配置
$bindir/mysqld_safe --defaults-file="$basedir/etc/my.cnf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
至此就可以通过mysql.server来管理mysql服务了,通常我们是放在/etc/init.d/目录下。注意该脚本要有执行权限。
原文链接:mysql.server官方启动脚本使用配置,转载请注明来源!