編譯安裝第二個mysql(sina部落格移入)

會影發表於2016-03-24

linux的作業要自己編譯一個mysql,但是我的系統上已經有一個mysql了,再編譯一個,最麻煩的地方不在於編譯,而是讓兩個共存。
前面的編譯環節和普通安裝沒有什麼區別,還是configure,make,make install。其中configure的時候,選擇一下安裝的位置,否則可能導致原來的檔案被覆蓋(使用–prefix選項)。我的破電腦make的時候花了不少時候(具體多少我也不清楚,開始編譯之後就去吃飯了),安裝好之後,按照mysql的手冊複製support-files/my-medium.cnf到安裝目錄裡面的var目錄下(沒有安裝資料庫的時候這個資料夾不存在,自己在安裝根目錄下建立一個),然後修改裡面的客戶端通訊使用的socket檔案的名字sed -i -e ‘s/mysql.sock/mysql1.sock/’ /opt/mysql/var/my.cnf,這裡把socket檔案改成了mysql1.sock(原來的mysql預設的socket檔案是mysql.sock,不修改會導致兩個socket檔案衝突)。如果要同時通過網路監聽,可能還需要修改裡面的監聽埠,反正我只是當成作業演示一下,所以監聽埠就沒有修改。
後面的操作和手冊上一樣,偷懶了下,沒有匯出環境變數,所以要輸入絕對路徑。先改變了資料夾的擁有者,然後就用mysql_install_db –user=mysql建立了資料庫(這裡要防止使用原來PATH下的mysql程式)。最後啟動mysql,mysqld_safe –user=mysql &(還是一樣,注意不要用原來mysql的程式)。
這時,新的mysql已經啟動,可以用mysql命令連線了(好像這裡還是要用新的那個),建立了個資料庫,測試了一下一切ok,沒有對以前的mysql有影響。
關鍵點就是mysql的配置檔案my.cnf檔案要複製到mysql安裝目錄的var資料夾下(mysql用來儲存資料庫檔案的資料夾),這樣這個配置檔案只對該伺服器有效,不會影響到系統中預設的/etc下的那個配置檔案。為了防止兩個mysqld的監聽衝突,最好修改配置檔案裡面的socket和監聽埠(如果通過網路連線)。

在ubuntu上配置出現問題了。ubuntu好像不會用新的配置檔案替換全域性配置檔案(mysql讀取配置檔案順序是/etc/my.cnf->資料庫安裝目錄/my.cnf->個人主目錄/.my.cnf)所以在建立資料庫(使用mysql_install_db)時,仍然需要指定my.cnf檔案路徑(使用–defaults-file選項)。在啟動資料庫時也同樣需要。使用mysql命令連線資料庫時,也需要指定連線的socket檔案,或者my.cnf檔案。
如果在安裝資料庫時出現unknown option ‘–skip-federated’,直接把自己的那份my.cnf檔案裡的skip-federated行註釋。

轉載自:https://coolex.info/blog/59.html


相關文章