【轉】mysql指定路徑啟動


 /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


以下內容轉:
http://chengxuyuan.naxieshir.com/fenlei/2/p/152.html

絕大多數的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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM