mysql多執行個體(mysqld_multi方式)

來源:互聯網
上載者:User

標籤:mysql多執行個體

CleverCode最近在研究mysql的多執行個體,發現有兩種方式:
        第一種是使用多個設定檔啟動不同的進程來實現多執行個體。這種方式的優勢邏輯簡單,配置簡單,缺點是管理起來不太方便。
        第二種是通過官方內建的mysqld_multi。使用單獨的設定檔來實現多執行個體,這種方式定製每個執行個體的配置不太方面,優點是管理起來很方便,集中管理。
        推薦使用多個設定檔方式。這種實際應用中好,耦合性不強,配置方便,特別是主從複製的時候。
       上一篇《mysql多執行個體(多個設定檔方式)》:http://blog.csdn.net/clevercode/article/details/47610619。介紹了多個設定檔方式。本篇將介紹mysqld_multi方式。


1 環境介紹:

1)簡介
mysql 版本:mysql-5.5.27
cmake:cmake-2.8.8
作業系統:CentOS6.5
mysql執行個體數:3個
執行個體佔用連接埠分別為:3306、3307、3308

2)本次安裝所有的軟體資源套件
http://download.csdn.net/detail/clevercode/8662323

2 配置防火牆
1) 在防火牆設定檔中添加3306,3307,3308(允許3306,3307,3308連接埠通過防火牆) 
# vi /etc/sysconfig/iptables   #編輯防火牆設定檔 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3307 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3308 -j ACCEPT
2)重啟防火牆
# /etc/init.d/iptables restart  #最後重啟防火牆使配置生效

3 安裝cmake
解壓
# cd /usr/local/src/mysql
# tar zxvf cmake-2.8.8.tar.gz
# cd cmake-2.8.8

配置
# ./configure

編譯
# make

安裝
# make install

查看版本
# cmake -version

4 安裝Mysql
1) 建立使用者
# groupadd mysql  #添加mysql組    
# useradd -g mysql mysql -s /bin/false  #建立使用者mysql並加入到mysql組,不允許mysql使用者直接登入系統

2) 解壓
# cd /usr/local/src/mysql
# tar zxvf mysql-5.5.27.tar.gz
# cd mysql-5.5.27

4) 配置
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 

PS: cmake的時候,參數可以不用那麼多,只要一個-DCMAKE_INSTALL_PREFIX=/usr/local/mysql就行了,我們可以在 my.cnf裡面配置。[mysqld]中的內容,看看你copy後的my.cnf有沒有這些設定,有就不用了在設定了。  

5)編譯
# make

6)安裝
# make install


5 初始化資料庫
# mkdir -p /data0/dbdata/mysql/3306
# mkdir -p /data0/dbdata/mysql/3307
# mkdir -p /data0/dbdata/mysql/3308

# chown -R mysql:mysql /data0/dbdata/mysql/3306
# chown -R mysql:mysql /data0/dbdata/mysql/3307
# chown -R mysql:mysql /data0/dbdata/mysql/3308

# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data0/dbdata/mysql/3306 --user=mysql
# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data0/dbdata/mysql/3307 --user=mysql
# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data0/dbdata/mysql/3308 --user=mysql

6 修改設定檔(只用/etc/my.cnf檔案)
# cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf

# vi /etc/my.cnf

[mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin #用於登陸和關閉此服務user       = rootpassword   = CleverCode123[mysqld3306] #資料目錄datadir = /data0/dbdata/mysql/3306#串連 port = 3306 socket = /tmp/mysql3306.sock #binlog log-bin=/data0/dbdata/mysql/3306/mysql-bin pid-file = /data0/dbdata/mysql/3306/mysql_3306.pid[mysqld3307] datadir = /data0/dbdata/mysql/3307port = 3307socket = /tmp/mysql3307.sock log-bin=/data0/dbdata/mysql/3307/mysql-bin pid-file = /data0/dbdata/mysql/3307/mysql_3307.pid[mysqld3308] datadir = /data0/dbdata/mysql/3308port = 3308socket = /tmp/mysql3308.socklog-bin=/data0/dbdata/mysql/3308/mysql-binpid-file = /data0/dbdata/mysql/3308/mysql_3308.pid

7 啟動3306、3307、3308的mysql 
# /usr/local/mysql/bin/mysqld_multi start 3306
# /usr/local/mysql/bin/mysqld_multi start 3307
# /usr/local/mysql/bin/mysqld_multi start 3308

8 查看連接埠是否監聽,如果出現3306,3307,3308則啟動正常
# netstat -anp | grep 3308

tcp        0      0 0.0.0.0:3308                0.0.0.0:*                   LISTEN      2348/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     10780  2348/mysqld         /tmp/mysql3308.sock  


9 初始化密碼並且授權遠程登入,mysqladmin使用者名稱和密碼需要和/ect/my.cnf中保持一致,否則stop不了服務。

# /usr/local/mysql/bin/mysqladmin -u root password "CleverCode123" -S /tmp/mysql3306.sock
# /usr/local/mysql/bin/mysql -uroot -pCleverCode123 -S  /tmp/mysql3306.sock
mysql> grant all privileges on  *.* to ‘root‘@‘%‘ identified by ‘pwd3306‘ with grant option;
mysql> flush privileges;

# /usr/local/mysql/bin/mysqladmin -u root password "CleverCode123" -S /tmp/mysql3307.sock
# /usr/local/mysql/bin/mysql -uroot -pCleverCode123 -S  /tmp/mysql3307.sock
mysql> grant all privileges on  *.* to ‘root‘@‘%‘ identified by ‘pwd3307‘ with grant option;
mysql> flush privileges;

# /usr/local/mysql/bin/mysqladmin -u root password "CleverCode123" -S /tmp/mysql3308.sock
# /usr/local/mysql/bin/mysql -uroot -pCleverCode123 -S  /tmp/mysql3308.sock
mysql> grant all privileges on  *.* to ‘root‘@‘%‘ identified by ‘pwd3308‘ with grant option;
mysql> flush privileges;

10 停止(必須先初始化密碼)。可以使用netstat -anp | grep 3308查看監聽進程是否還存在
# /usr/local/mysql/bin/mysqld_multi stop 3306
# /usr/local/mysql/bin/mysqld_multi stop 3307
# /usr/local/mysql/bin/mysqld_multi stop 3308

11 報告。顯示進程的狀態
# /usr/local/mysql/bin/mysqld_multi report 3306
# /usr/local/mysql/bin/mysqld_multi report 3307
# /usr/local/mysql/bin/mysqld_multi report 3308

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

mysql多執行個體(mysqld_multi方式)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.