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)

SQL 复制代码
-- 创建用户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
    -- 输入密码

  2. 同步前强烈建议先把主库和从库需要同步的数据库调整为一致,否则如果主库数据里大,会进行漫长的同步等待

相关推荐
广州智造2 小时前
OptiStruct实例:3D实体转子分析
数据库·人工智能·算法·机器学习·数学建模·3d·性能优化
技术宝哥5 小时前
Redis(2):Redis + Lua为什么可以实现原子性
数据库·redis·lua
学地理的小胖砸6 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
dddaidai1237 小时前
Redis解析
数据库·redis·缓存
数据库幼崽7 小时前
MySQL 8.0 OCP 1Z0-908 121-130题
数据库·mysql·ocp
Amctwd7 小时前
【SQL】如何在 SQL 中统计结构化字符串的特征频率
数据库·sql
betazhou8 小时前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
lyrhhhhhhhh8 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
喝醉的小喵9 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁
付出不多10 小时前
Linux——mysql主从复制与读写分离
数据库·mysql