MySQL基本配置

fiona8953發表於2015-02-26
一、MySQL檔案位置
使用rpm檔案安裝的MySQL,安裝目錄是不可修改的,只能使用打包者確定的預定義安裝路徑。它的安裝並非預設安裝在某個特定目錄下,它的資料庫檔案、配置檔案盒命令檔案分別都放在不同的目錄下:

1. 資料庫目錄:/var/lib/mysql/
該目錄下儲存的是各個使用者的資料庫檔案,以“.frm”為字尾

2. 配置檔案:/usr/share/mysql/
該目錄儲存了mysql.server的命令及配置檔案,具體不清楚。。。

3. 相關命令:/usr/bin/
mysql、mysqladmin等命令。該路徑被新增到環境變數$PATH,因此可以直接輸入命令名來呼叫該命令

4. 啟動指令碼:/etc/init.d/
啟動指令碼檔案mysql的目錄


二、關於MySQL的啟動
在/etc/init.d和/usr/bin這兩個目錄下都有名為mysql的指令碼。
執行前者,需要輸入完整的檔案路徑名 ==> /etc/init.d/mysql start
          啟動的是MySQL的後臺守護程式,在當前程式列表中相應的程式名為mysqld和mysqld_safe

執行後者,在系統的任何目錄下,都可以直接輸入指令碼名 ==> mysql -u root -p 
          啟動的是MySQL的前臺互動終端,在當前程式列表中相應的程式名為mysql

啟動後者要在前者已經啟動的前提下進行,實際上/usr/bin中所有的mysql相關命令都要在mysqld程式執行的前提下才能啟動


三、關於MySQL的後臺守護程式
    mysqld是實際的後臺守護程式,但通常都是透過包裝程式mysqld_safe進行互動。在以前的版本中,在/usr/bin目錄下有單獨的mysqld指令碼檔案,但是在最新的版本(5.5.19)已經沒有了,只有mysqld_safe指令碼。
    /etc/init.d/目錄下的啟動指令碼mysql是啟動了/usr/bin/mysqld_safe指令碼(透過檢視/etc/init.d/mysql指令碼檔案內容可知),而mysqld_safe指令碼通常做的是:
1. 檢查系統和選項
2. 檢查MyISAM表
3. 保持MySQL伺服器視窗
4. 啟動並監視mysqld,如果因錯誤終止則重啟
5. 將mysqld的錯誤資訊傳送到資料目錄中的host_name.err檔案
6. 將mysqld_safe的螢幕輸出傳送到資料目錄中的host_name.safe檔案

因此,啟動MySQL後臺程式可以不透過/etc中的啟動指令碼,而直接執行/usr/bin/目錄下的mysqld_safe指令碼,該指令碼在進行一系列初始化操作後會自動啟動mysqld。

啟動mysqld_safe
1. 首先要切換到/usr/bin目錄下 ==>cd /usr/bin
2. 執行指令碼  ==> ./mysqld_safe &
3. 在終端輸入 ps -a|grep -i mysqld
   會發現系統程式中就會多出mysqld_safe和mysqld這兩個。

其中“&”表示希望守護程式在後臺進行
關於不加"&"的影響:
正常的情況:mysqld_safe會監視mysqld程式,當其終止時會重啟該程式。因此當使用kill命令強行關閉mysqld程式時,mysqld_safe程式會自動重新啟動mysqld程式。而且使用kill關閉mysqld_safe程式不會影響mysqld程式。
不加“&”的後果:那麼使用kill命令強行關閉mysqld程式時,mysqld_safe不會重新啟動它,使用ps命令檢視當前程式時,會發現mysqld程式仍然在其中,只不過後面多了標識,表示該程式已經死了,此時該死去的程式依附於mysqld_safe程式而存在,殺死mysqld_safe程式,該程式也會消失。
eg. Refer to: 
那說明你的確成功的關掉了mysql服務了,只是它又啟動了而已,應該是有守護程式在後臺監視著,你正常關閉mysql試一下,比如
service mysqld stop
/etc/init.d/mysql stop

四、配置檔案my.cnf
    執行mysqld_safe指令碼還可以透過指定一些選項的值來修改mysql的配置。這些配置也可以在my.cnf檔案中修改。
    my.cnf是MySQL的配置檔案。啟動時,MySQL會在一些目錄中查詢my.cnf檔案,每個目錄將確定在其中宣告的引數的作用域:
1. /etc/my.cnf -- 全域性配置檔案。所有位於伺服器中的MySQL伺服器守護程式將首先引用這個檔案(如果有的話)
2. /usr/share/mysql/my.cnf -- 伺服器特定的配置
3. --defaults-extra-file=name 這個檔案由給出的檔名指定
4. ~/.my.cnf -- 使用者特定的配置。

    MySQL在啟動時會嘗試從上述各個位置讀取配置檔案。如果存在多個配置檔案,後面讀取的引數將覆蓋之前的引數。
    初始時,在上述目錄下並沒有my.cnf檔案,而在/usr/share/mysql中有5個預配置的cnf檔案。使用者應該根據自己的需要從中選取一個,複製到相應目錄下並重新命名為my.cnf
1. my-huge.cnf 用於高階產品伺服器,包含1-2G RAM,主要執行MySQL
2. my-innodb-heavy-4G.ini 用於只有InnoDB的安裝,最多有4G RAM,支援大的查詢的低流量
3. my-large.cnf 用於中等規模的產品伺服器,包含大約512M RAM,主要執行MySQL
4. my-medium.cnf 用於低端產品伺服器,包含很少記憶體(少於128M)
5. my-small.cnf 用於最低裝備的伺服器,只有一點記憶體(少於64M)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26477398/viewspace-1441471/,如需轉載,請註明出處,否則將追究法律責任。