如何在同一台機器上安裝多個MySQL的實例


  最近由於工作的需要,需要在同一台機器上搭建兩個MySQL的實例,(注:已經存在了一個3306的MySQL的實例)。

  先說下,什么是mysql的多實例,簡單的來說就是一台機器上安裝了多個mysql的服務,通過不同的端口(如3307,3308)來向外界提供服務,這些進程通過不同的socket來監聽不同的服務端口來提供個字的服務。

  做個比喻:MySQL的多實例相當於房子的相當於多個卧室一樣,每個實例可以看做是一個卧室,整個服務器就是一個房子,服務器的硬件資源(cpu,mem,disk)就是共享的資源,相當於房子的衛生間,廚房,客廳一樣,是房子的公共資源,北漂蝸居在一起,可定是要公用上述的資源的。

  好處:

    當公司資金緊張,可以節約服務器的資源。

  壞處:

    當某個服務並發很高或者有慢查詢的時候,整個實例會消耗整個服務器更多的內存,cpu和各種資源,導致服務器上的其他的實例提供的服務質量下降。這就相當於大家住在一個房子的不同卧室一樣,早晨起來刷牙,洗臉等,這樣衛生間就會長期占用,其他人需要等一樣的道理。

下面記錄下裝一個3307的MySQL的實例的步驟:

一. 基本的需求和出現的問題

  當MySQL出現故障或者需要加入一個新的MySQL的實例的時候,需要重新初始化MySQL的數據庫,也就是需要重新生成新的數據庫的文件。

  Linux環境中,安裝編譯好MySQL之后,還是不能直接啟動MySQL,需要初始化Mysql的一些基本東西,包括:

  初始化表日志,基本的數據庫信息等一些基本的必須文件。

二.安裝的步驟:

  (1). 假設已經存在一個MySQL的實例,端口號為3306,現在需要重新添加一個端口號為3307端口的MySql的實例。

     假設MySQl安裝的路徑是/usr/local/mysql/下面,找一個數據磁盤比較的地方,比如/data1/目錄下,在這個目錄下面創建數據文件夾:

1  mkdir  -p /data1/mysql_3307/data
2  chown  -R mysql::mysql /data1/mysql_3307

  (2). 復制之前的MySQl的配置文件,到/data1/mysql_3307/目錄下面,並且進行編輯:

    vim  /data1/mysql_3307/my.cnf

    基本的配置如下:

    

    注:上面的路徑可能與上面的數據庫文件的存放路徑有點出入,但這個不是重點,可以自行替換一下!

(3).確保配置文件無誤,然后開始初始化數據庫:

     /usr/local/mysql/scripts/mysql_install_db --defaults-file=/data1/mysql_3307/my.cnf --datadir=/data1/mysql/ --basedir=/usr/lcoal/mysql
  完成后,新的mysql 3307數據庫已經初始化好了,如果有報錯,則看下報錯的日志,一般是由於mysql的配置文件導致的,修改即可!

 (4).啟動新的MySQL的實例服務:

  在上面的初始化配置確保無誤的情況下,就可以開始啟動MySQL的又一個實例了。

1 /usr/local/mysql/bin/mysqld_safe --defaults-file=/data1/mysql_3308/my.cnf &
2  檢查是否啟動:
3     ps -aux | grep mysql
4  如有3308的端口   則表示成功

(5).新的 mysql沒有設置root密碼,可以通過如下 的設置:

/usr/local/mysl/bin/mysqladmin     -S /tmp/mysql_3308.sock -uroot passwd 'new-paswd';

  如上面的步驟,即可完成一個機器上多個MySQL實例的安裝與運行。

 當然了,可以將MySQL_server這個腳本放入到/rt/rc.local這個目錄下面,隨着服務器啟動。

(6).如果想登陸的時候,需要指定MySQL的端口號,使用-P3307來指定登錄到哪台數據庫上即可。

 總結:

  自己在安裝這個數據庫的時候,以為是需要再次下載一個新的數據庫的源碼包,但是其實是不用的,使用一個MySQL的源碼包,是可以安裝多個MySQL的實例的。


免責聲明!

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



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