一、MySQL多實(shí)例簡(jiǎn)介
MySQL多實(shí)例,簡(jiǎn)單地說(shuō),就是在一臺(tái)服務(wù)器上同時(shí)開(kāi)啟多個(gè)不同的服務(wù)端口(如:3306、3307),同時(shí)運(yùn)行多個(gè)MySQL服務(wù)進(jìn)程,這些服務(wù)進(jìn)程通過(guò)不同的socket監(jiān)聽(tīng)來(lái)自不同的端口來(lái)提供服務(wù);
多實(shí)例不僅節(jié)省物理主機(jī)成本,還有效提升了單臺(tái)物理主機(jī)的CPU、磁盤(pán)I/O使用效率,而且還可以在多實(shí)例之間做部署數(shù)據(jù)庫(kù)HA方案。
隨著實(shí)例數(shù)量的增加,就面臨統(tǒng)一管理問(wèn)題,這樣我們就需要用MySQL自帶的管理程序 mysqld_multi 來(lái)進(jìn)行管理...
二、MySQL啟動(dòng)流程
mysqld_multi #多實(shí)例管理程序
mysqld #MySQL最主要的啟動(dòng)方式,里面有很多參數(shù);現(xiàn)在使用多實(shí)例就需要用新的mysql_safe 來(lái)啟動(dòng)mysql
mysql_safe #實(shí)則還是調(diào)用mysqld,并且會(huì)讀取mysqld中的my.cnf配置參數(shù)來(lái)啟動(dòng)mysql,mysql_safe本身也有很多參數(shù),但是這些參數(shù)會(huì)優(yōu)先于my.cnf
my.cnf #mysql的配置文件
my.sock #mysql創(chuàng)建的sock文件,開(kāi)啟、停止、登陸和管理mysql都是通過(guò)這個(gè)接口文件
三、接下來(lái)基于mysql5.5.52版本,安裝方法請(qǐng)看MySQL5.5.52編譯安裝,利用mysqld_multi配置一個(gè)多實(shí)例
1、停止單實(shí)例mysql數(shù)據(jù)庫(kù)
2、禁止開(kāi)機(jī)自啟動(dòng)
[root@db01 ~]# chkconfig mysqld off [root@db01 ~]# chkconfig --list mysqld mysqld 0:關(guān)閉 1:關(guān)閉 2:關(guān)閉 3:關(guān)閉 4:關(guān)閉 5:關(guān)閉6:關(guān)閉3、創(chuàng)建多實(shí)例根目錄/data/目錄
[root@db01 ~]# mkdir -p /data/{3306,3307}/data4、拷貝mysqld_multi程序文件
[root@db01 ~]# cp /application/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi.server1)修改mysqld_multi.server路徑配置
[root@db01 ~]# sed -i 's#basedir=/usr/local/mysql#basedir=/application/mysql#g' /etc/init.d/mysqld_multi.server [root@db01 ~]# sed -i 's#bindir=/usr/local/mysql/bin#bindir=/application/mysql/bin#g' /etc/init.d/mysqld_multi.server2)添加mysqld_multi用到的/etc/mysqld_multi.cnf配置文件
#這個(gè)模板文件可以用命令mysqld_multi --example導(dǎo)出來(lái)
5、配置MySQL多實(shí)例的文件權(quán)限
通過(guò)下面的命令授權(quán)mysql用戶和用戶組管理整個(gè)多實(shí)例的根目錄/data
6、初始化MySQL多實(shí)例的數(shù)據(jù)庫(kù)文件
(1)初始化MySQL數(shù)據(jù)庫(kù)
cd /application/mysql/scripts/ <==注意和MySQL5.1的路徑不同,MySQL5.1不在MySQL bin路徑下了
3306實(shí)例
/application/mysql/scripts/mysql_install_db \
--basedir=/application/mysql \
--datadir=/data/3306/data \
--user=mysql
3307實(shí)例
/application/mysql/scripts/mysql_install_db \
--basedir=/application/mysql \
--datadir=/data/3307/data \
--user=mysql
提示:--basedir=/application/mysql為MySQL的安裝路徑,--datadir為不同的實(shí)例數(shù)據(jù)目錄
操作過(guò)程:
7、啟動(dòng)多實(shí)例:
1)查看數(shù)據(jù)庫(kù)狀態(tài)
2)啟動(dòng)數(shù)據(jù)庫(kù)
[root@db01 ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf start 1,2 [root@db01 ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf report Reporting MySQL servers MySQL server from group: mysqld1 is running MySQL server from group: mysqld2 is running3)查看端口
[root@db01 ~]# ss -nlutp|grep 330 tcp LISTEN 0 50 *:3306 *:* users:(("mysqld",47045,10)) tcp LISTEN 0 50 *:3307 *:* users:(("mysqld",47041,10))8、停止數(shù)據(jù)庫(kù)
[root@db01 ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf stop 1,2 [root@db01 ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf report Reporting MySQL servers MySQL server from group: mysqld1 is not running MySQL server from group: mysqld2 is not running9、登陸數(shù)據(jù)庫(kù)
1)啟動(dòng)數(shù)據(jù)庫(kù)
2)登錄數(shù)據(jù)庫(kù)
方法一:指定端口和主機(jī)IP,適合遠(yuǎn)程連接
方法二:指定socket登陸,適合在本機(jī)連接
mysql -S /data/3307/mysql.sock操作演示
方法一:指定端口和主機(jī)IP,適合遠(yuǎn)程連接
方法二:指定socket登陸,適合在本機(jī)連接
[root@db01 ~]# mysql -S /data/3307/mysql.sock Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.52 Source distribution Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>到這里MySQL多實(shí)例就配置完成啦O(∩_∩)O~~?。?!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。