my.cnf 配置文件中 mysql pid 参数说明 当 MySQL 实例启动时, 会将自己的进程 ID 写入一个文件中 -- 该文件即为 pid 文件. 该文件可由参数 pid_file 控制, 默认位于数据库 http://www.2cto.com/database/ 目录下, 文件名为主机名. pid:
- mysql> show variables like 'pid_file'\G;
- *************************** 1. row ***************************
- Variable_name: pid_file
- Value: /usr/local/mysql/data/xen-server.pid
- 1 row in set (0.00 sec)
下面了解:
绝大多数的 mysql 在启动的时候都要加载一个配置文件, 相信大多数的开发都碰到过类似问题, 机器启动时 mysql 默认都会启动, 默认使用 mysql 命令可以连上服务端, 但是数据存储在什么地方, 参数设置的是多少等等, 这个就需要知道 mysql 使用的是哪个配置文件, 那么 mysql 启动是按照什么顺序来加载配置文件的呢?
不同版本的机器加载的顺序也不一样, 下面的列子是以 5.1.10 为例.
Linux 机器下常用的配置文件路径
文件名 | 作用 |
---|---|
/etc/my.cnf | Global options |
/etc/mysql/my.cnf | Global options (as of MySQL 5.1.15) |
SYSCONFDIR/my.cnf | Global options |
$MYSQL_HOME/my.cnf | Server-specific options |
defaults-extra-file | The file specified with--defaults-extra-file=path |
~/my.cnf | User-specific options |
在没有添加任何启动命令的时候, mysql 会默认的依次从上到下检查配置文件是否存在, 使用第一个发现的文件作为启动文件.
因此在启动 mysqld 的时候, 一定要确定好上述的路径下是否有对应的配置文件, 避免加载了错误的文件, 导致一些奇怪的问题.
当然, 如果不想使用默认加载顺序中的配置文件, 可以在启动命令上增加 --defaults-file='path/to/my.cnf'来指定要使用的配置文件
查看当前 mysqld 启动时的加载文件
通常可以用下面的命令找到答案
- server ~ # ps ax | grep '[m]ysqld'
- 10801 ? Ssl 0:27 /usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf --basedir=/usr --datadir=/var/lib/mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock
更高级一些, 根据进程的文件信息来查看
- server ~ # cat /proc/$(pidof mysqld)/cmdline | tr '\0' '\n'
- /usr/sbin/mysqld
- --defaults-file=/etc/mysql/my.cnf
使用 mysqld 自带的 --verbose 功能
server ~ # /usr/sbin/mysqld --help --verbose --skip-networking --pid-file=$(tempfile) 2> /dev/null | grep -A1 'Default options are read'
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
来源: http://www.bubuko.com/infodetail-2616789.html