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

相关推荐
2303_7637995614 分钟前
MySQL数据库函数——日期函数
数据库
张声录127 分钟前
【ETCD】【实操篇(十九)】ETCD基准测试实战
java·数据库·etcd
鱼香鱼香rose1 小时前
面经hwl
java·服务器·数据库
m0_748254661 小时前
完美解决phpstudy安装后mysql无法启动
数据库·mysql
时雨h3 小时前
30天面试打卡计划 2024-12-25 26 27 面试题
java·开发语言·数据库
TDengine (老段)5 小时前
TDengine 新功能 VARBINARY 数据类型
大数据·c语言·数据库·时序数据库·tdengine·涛思数据
山山而川粤6 小时前
母婴用品系统|Java|SSM|JSP|
java·开发语言·后端·学习·mysql
yuenblue7 小时前
什么是ondelete cascade以及使用sqlite演示ondelete cascade使用案例
数据库·sqlite
howard_shooter7 小时前
Oracle Managed Files(OMF)
数据库·oracle
yangfeipancc8 小时前
数据库-用户管理
android·数据库