MySQL多实例
定义:就是在一台mysql机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务
Mysql多实例安装部署
1.修改配置文件
vim /etc/my.cnf
#M-M-S
[mysqld_multi]
mysqld=/usr/local/mysql/bin/mysqld_safe
mysqladmin=/usr/local/mysql/bin/mysqladmin
log=/root/mysql_log
#格式[mysql标签号]
[mysqld13]
#进程号
pid-file=/usr/local/mysql/data/a/mysql.pid
port=3306
#工作目录
datadir=/usr/local/mysql/data/a/
#socket号
socket=/usr/local/mysql/data/a/mysql.sock
user=mysql
server-id=13
#日志格式
log_bin=mysql-bin
binlog_format=row
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#自动清洗日志
expire_logs_days=4
#下面的需要 >5.6版本,若不是则下面配置略过,跳到下一个标签
#开启gtid
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
[mysqld31]
pid-file=/usr/local/mysql/data/b/mysql.pid
port=3307
datadir=/usr/local/mysql/data/b/
socket=/usr/local/mysql/data/b/mysql.sock
user=mysql
server-id=31
log_bin=mysql-bin
binlog_format=row
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
expire_logs_days=4
#下面的需要 >5.6版本,若不是则下面配置略过
#开启gtid
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
2.创建工作目录
cd /usr/local/mysql/data/
mkdir {a,b}
#修改属主属组mysql(防止出现权限问题)
chown -R mysql:mysql a
chown -R mysql:mysql b
3.初始化MySQL
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/a/
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/b/
若成功初始化在工作目录会出现test库和mysql库
检查数据库是否初始化成功:
4.mysqld_multi进行多实例管理
启动全部实例:/usr/local/mysql/bin/mysqld_multi start
#需要等待1分钟让MySQL启动才能看到report is running
查看全部实例状态:/usr/local/mysql/bin/mysqld_multi report
启动单个实例:/usr/local/mysql/bin/mysqld_multi start 标签号
启动单个实例:/usr/local/mysql/bin/mysqld_multi start 31
停止单个实例:/usr/local/mysql/bin/mysqld_multi stop 31
查看单个实例状态:/usr/local/mysql/bin/mysqld_multi report 31
5.查看启动进程
ps -ef | grep mysql
或者查看端口号
netstat -tulnp | grep mysql