当MySQL实例启动时,会将自己的进程ID写入一个文件中——该文件即为pid文件。该文件可由参数pid_file控制,默认位于数据库目录下,文件名为主机名.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为例。
文件名 | 作用 |
---|---|
/etc/my.cnf | Global options |
/etc/mysql/my.cnf | Global options (as of MySQL 5.1.15) |
| Global options |
$MYSQL_HOME/my.cnf | Server-specific options |
defaults-extra-file | The file specified with--defaults-extra-file= |
~/my.cnf | User-specific options |
在没有添加任何启动命令的时候,mysql会默认的依次从上到下检查配置文件是否存在,使用第一个发现的文件作为启动文件。
因此在启动mysqld的时候,一定要确定好上述的路径下是否有对应的配置文件,避免加载了错误的文件,导致一些奇怪的问题。
当然,如果不想使用默认加载顺序中的配置文件,可以在启动命令上增加 --defaults-file='path/to/my.cnf'来指定要使用的配置文件
通常可以用下面的命令找到答案
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 |
更高级一些,根据进程的文件信息来查看
1 2 3 | server
~ # cat /proc/$(pidof mysqld)/cmdline | tr '\0' '\n' /usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf |
使用mysqld自带的 --verbose功能
1 2 3 | 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 |
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。