10分钟搞定Mysql主从部署配置

流程

  1. Master数据库安装
  2. Slave数据库安装
  3. 配置Master数据库
  4. 配置Slave数据库

网络信息

  1. Master数据库IP:192.168.198.133
  2. 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,就证明同步正常了

注意事项

  1. 对从库进行配置前,建议在从库服务器上,使用同步账号通过mysql命令进行一次访问,来确保两台服务器之间可以相互访问
mysql -h 192.168.198.133 -u synch -p
-- 输入密码
  1. 同步前强烈建议先把主库和从库需要同步的数据库调整为一致,否则如果主库数据里大,会进行漫长的同步等待
posted @ 2024-05-16 15:32  锅总的程序人生  阅读(421)  评论(0编辑  收藏  举报