10分钟搞定Mysql主从部署配置
流程
- Master数据库安装
- Slave数据库安装
- 配置Master数据库
- 配置Slave数据库
网络信息
- Master数据库IP:192.168.198.133
- Slave数据库IP:192.168.198.132
配置Master数据库
在Master数据库安装完毕后,修改/etc/my.cnf
[mysqld]
server-id=1 \\指定ID,主从的两台虚拟机ID必须不同
log-bin=mysql-bin \\mysql根据配置自动设置指定的二进制文件名
修改完配置文件,重启数据库主库
systemctl restart mysqld
在Master库中添加同步使用的用户(不能用root)
-- 创建用户synch,IP地址必须绑定Slave服务器IP,否则Slave无法通过此账号来访问
create user 'synch'@'192.168.198.132' identified by '123456';
-- 对账号的数据库和数据表进行授权,授权全部库即可
grant replication slave on *.* to 'synch'@'192.168.198.132';
-- 刷新权限
flush privileges;
查看住数据库状态,确定日志File名和当前bin日志的位置,提供给从库做配置使用。下图中的Position指的是log-bin日志的位置,一般这里写什么,从库中就写什么。从库中写了该信息后,同步将从此日志位置开始
也就是说,在同步之前,你的主库和从库状态必须是一致的。否则在从库配置该属性的时候,就要配置为0
配置Slave数据库
你有几个Slave就配置几个,咱们这以一个Slave数据库举例。同样先修改/etc/my.cnf
[mysqld]
server-id=2
replicate-do-db=test \\指定要复制的数据库
修改完重启数据库
systemctl restart mysqld
进入从库的交互模式
mysql -uroot -p
-- 输入密码
-- 停掉同步
stop slave;
-- 修改同步的配置,注意:以下配置每一行后面一定不能有空格,否则识别可能不通过
change
master to
master_host='192.168.198.133',
master_port=3306,
master_user='synch',
master_password='123456',
master_log_file='mysql-bin.000001',
master_log_pos=3558;
-- master_host:主库的IP
-- master_user:同步用户,就是上一环节创建的用户
-- master_password:用户密码,就是上一环境创建的用户密码
-- master_log_file:上一环节看到的日志文件名
-- master_log_pos: 从哪一行开始同步
-- 开启同步
start slave;
-- 查看从库同步信息和状态
show slave status\G;
从库同步信息和状态中,只要Slave_IO_Running和Slave_SQL_Running 都是Yes,就证明同步正常了
注意事项
- 对从库进行配置前,建议在从库服务器上,使用同步账号通过mysql命令进行一次访问,来确保两台服务器之间可以相互访问
mysql -h 192.168.198.133 -u synch -p
-- 输入密码
- 同步前强烈建议先把主库和从库需要同步的数据库调整为一致,否则如果主库数据里大,会进行漫长的同步等待