您好,登錄后才能下訂單哦!
當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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。