在一臺(tái)服務(wù)器上運(yùn)行多個(gè)mysql實(shí)例的需求并不罕見。例如,我們可能需要在同一臺(tái)服務(wù)器上運(yùn)行多個(gè)web應(yīng)用程序,每個(gè)應(yīng)用程序需要自己的mysql實(shí)例。為了實(shí)現(xiàn)這個(gè)需求,我會(huì)在我的CentOS服務(wù)器上安裝多個(gè)mysql實(shí)例。下面是我使用的步驟:
第一步:創(chuàng)建不同的MySQL數(shù)據(jù)目錄和配置文件
# 創(chuàng)建兩個(gè)MySQL數(shù)據(jù)目錄,分別命名為mysql1和mysql2: mkdir /data/mysql1 mkdir /data/mysql2 # 創(chuàng)建兩個(gè)配置文件: cp /etc/my.cnf /etc/my1.cnf cp /etc/my.cnf /etc/my2.cnf
修改新的配置文件。因?yàn)樾枰贑entOS上安裝兩個(gè)實(shí)例,所以需要在默認(rèn)配置中修改兩個(gè)port端口,用以區(qū)分不同的實(shí)例。將新的配置文件保存在每個(gè)實(shí)例的配置文件目錄下:
# 修改my1.cnf文件: vi /etc/my1.cnf # 修改my2.cnf文件: vi /etc/my2.cnf # 修改每個(gè)實(shí)例的my1.cnf和my2.cnf中的參數(shù) port=3307 # my1.cnf文件 port=3308 # my2.cnf文件 datadir=/data/mysql1 # my1.cnf文件 datadir=/data/mysql2 # my2.cnf文件 socket=/tmp/mysql1.sock # my1.cnf文件 socket=/tmp/mysql2.sock # my2.cnf文件 # 關(guān)閉內(nèi)置的Mysql: systemctl stop mysqld # 初始化實(shí)例: mysqld --defaults-file=/etc/my1.cnf --initialize-insecure --user=mysql --basedir=/usr --datadir=/data/mysql1 mysqld --defaults-file=/etc/my2.cnf --initialize-insecure --user=mysql --basedir=/usr --datadir=/data/mysql2 # 啟動(dòng)兩個(gè)實(shí)例: mysqld_safe --defaults-file=/etc/my1.cnf & mysqld_safe --defaults-file=/etc/my2.cnf & # 查看進(jìn)程: ps aux | grep mysqld
最后,你在同一臺(tái)服務(wù)器上就可以運(yùn)行多個(gè)Mysql實(shí)例了。