ubuntu下如何編譯安裝第二個mysql資料庫

來源:互聯網
上載者:User

我的系統上已經有一個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行注釋。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.