mysql安裝目錄、配置文件存放位置


linux系統下,如何知道mysql使用的配置文件到底是哪個呢?linux自帶的mysql的安裝目錄又是什么呢?數據存放在什么目錄下?


1、linux系統自帶的mysql,其安裝目錄及數據目錄查看方法(前提是已啟動mysql服務):

#ps -ef|grep mysqld

結果示例:

root       1972      1  0 10:03 ?        00:00:00 /bin/sh /skyleo/package/mysql/bin/mysqld_safe --datadir=/skyleo/package/mysql/data --pid-file=/skyleo/package/mysql/mysqld.pid
mysql      2396   1972  0 10:03 ?        00:00:05 /skyleo/package/mysql/bin/mysqld --basedir=/skyleo/package/mysql --datadir=/skyleo/package/mysql/data --plugin-dir=/skyleo/package/mysql/lib/mysql/plugin --user=mysql --log-error=/skyleo/package/mysql/mysqld.log --pid-file=/skyleo/package/mysql/mysqld.pid --socket=/skyleo/package/mysql/mysql.sock
root       2731   2639  0 10:20 pts/0    00:00:00 grep mysqld

其中,basedir=/skyleo/package/mysql就是mysql的安裝目錄(一台服務器上可能安裝着多個mysql服務,這里查看到的是正在運行着的這個mysql服務的安裝目錄),數據目錄為datadir=/skyleo/package/mysql/data,該mysql服務的啟動用戶是user=mysql,套接字文件存放位置為socket=/skyleo/package/mysql/mysql.sock,對外服務的端口是3306.


2、配置文件my.cnf查找:

查看啟動腳本mysqld文件,該文件可以在/etc/init.d目錄(redhat系統下)下找到,如果找不到,就通過ps -ef|grep mysqld查看,在basedir目錄下查找mysql.server文件,如上例中,mysqld文件就是在/skyleo/package/mysql目錄下搜索mysql.server文件。有的時候,/etc/init.d目錄下的mysqld文件跟ps另外查詢出來的文件內容不一致,這個可能是由於linux系統自帶了mysql服務,但是沒有使用該服務,又另外安裝了個mysql服務,並啟動了該另裝的mysql服務,這種情況下,應該查看ps查詢出來的mysqld文件,因為在這種情況下,很有可能是linux系統重啟時,啟動了系統自帶的mysql(因為/etc/init.d目錄下的配置文件就是系統啟動時啟動的服務,可能因啟動級別有所區別),然后手動把該mysql停掉了,然后又重新安裝了mysql,卻忘了用mysql.server文件替換/etc/init.d目錄下的mysqld文件,這樣,如果不重啟的情況下,mysql服務是正常的,一旦服務器重啟,還是會啟動linux自帶的mysql服務。

找到mysqld文件后,查看該文件,並找到如下內容:

conf=/etc/my.cnf
  print_defaults=
  if test -r $conf
  then
    subpat='^[^=]*basedir[^=]*=\(.*\)$'

這里的意思是,如果/etc下沒有my.cnf 文件,則到mysql目錄里 copy  my-medium.cnf 到/etc下為my.cnf




免責聲明!

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



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