在實際的開發過程中,可能會需要在一臺服務器上部署多個MYSQL實例,那建議使用MYSQL官方的解決方案 mysqld_multi
1.修改my.cnf
如一個定義兩個實例的參考配置:
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = your_user
password = your_password
[mysqld1]
datadir = /data/db/my1
#連接
port = 3306
socket = /tmp/mysql3306.sock
#binlog
log-bin=/data/db/mylog1/mysql-bin
binlog_format=mixed
binlog_cache_size = 32M
expire_logs_days = 30
[mysqld2]
datadir = /data/db/my2
#連接
port = 3307
socket = /tmp/mysql3307.sock
#binlog
log-bin=/data/db/mylog2/mysql-bin
binlog_format=mixed
binlog_cache_size = 32M
expire_logs_days = 3
複製代碼
2.創建數據目錄
mkdir -p /data/db/my21
mkdir -p /data/db/my2
chown mysql.mysql /data/db/my1 -R
chown mysql.mysql /data/db/my2 -R
複製代碼
3.初始化DB
/usr/local/mysql/scripts/mysql_install_db --datadir=/data/db/my1/ -uroot (mysql_install_db也是MYSQL官方自帶工具)
/usr/local/mysql/scripts/mysql_install_db --datadir=/data/db/my2/ -uroot
chown mysql.mysql /data/db/my1/ -R
chown mysql.mysql /data/db/my2/ -R
複製代碼
4. 安裝工具
cp /usr/local/mysql/bin/my_print_defaults /usr/bin/
cp /usr/local/mysql/bin/mysqld_multi /usr/bin/
複製代碼
5.創建、授權用戶
CREATE USER "your_user"@"192.168.1.%" IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO "your_user"@"192.168.1.%";
flush privileges;
複製代碼
至此,mysql多實例配置已經完畢。我們看到多個不同的MYSQL實例是共用my.cnf的。多實例命令行管理:
1.mysql啓動
mysqld_multi start 1 啓動實例1
mysqld_multi start 1-2 啓動實例1,2
複製代碼
2.mysql重啓
mysqld_multi restart 1 重啓實例1
mysqld_multi restart 1-2 重啓實例1,2
複製代碼
3.mysql關閉
mysqld_multi stop 1 關閉實例1
mysqld_multi stop 1-2 關閉實例1,2
複製代碼
4.命令行登陸實例2
mysql -u your_user -p your_password -P3307 -S /tmp/mysql3307.sock
複製代碼