在一臺服務器上運行多個mysql實例的需求并不罕見。例如,我們可能需要在同一臺服務器上運行多個web應用程序,每個應用程序需要自己的mysql實例。為了實現這個需求,我會在我的CentOS服務器上安裝多個mysql實例。下面是我使用的步驟:
第一步:創建不同的MySQL數據目錄和配置文件
# 創建兩個MySQL數據目錄,分別命名為mysql1和mysql2: mkdir /data/mysql1 mkdir /data/mysql2 # 創建兩個配置文件: cp /etc/my.cnf /etc/my1.cnf cp /etc/my.cnf /etc/my2.cnf
修改新的配置文件。因為需要在CentOS上安裝兩個實例,所以需要在默認配置中修改兩個port端口,用以區分不同的實例。將新的配置文件保存在每個實例的配置文件目錄下:
# 修改my1.cnf文件: vi /etc/my1.cnf # 修改my2.cnf文件: vi /etc/my2.cnf # 修改每個實例的my1.cnf和my2.cnf中的參數 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文件 # 關閉內置的Mysql: systemctl stop mysqld # 初始化實例: 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 # 啟動兩個實例: mysqld_safe --defaults-file=/etc/my1.cnf & mysqld_safe --defaults-file=/etc/my2.cnf & # 查看進程: ps aux | grep mysqld
最后,你在同一臺服務器上就可以運行多個Mysql實例了。