首页 > 数据库 >MySql主从复制

MySql主从复制

时间:2022-09-24 15:47:48浏览次数:55  
标签:主库 主从复制 slave MySql master mysql mysqld 从库

  • Mysql主从复制是MySql数据库自带的功能,是多台Mysql数据库(salve, 从库 )从另一台MySql数据库(master,主库)进行日志复制再解析并应用到自身,最终实现从库的数据和主库的数据保持一致。

  • . 配置主库(master)

  1. 修改Mysql数据库配置文件/etc/my.cnf
[mysqld]
log-bin=mysql-bin #启用二进制日志
server-id=101     #服务器唯一ID 
  1. 重启mysql服务
systemctl restart mysqld
  1. 登录mysql创建一个用户,并授予该用户 REPLICATION SLAVE 权限,用于建立复制时所用,slave必须被master授权具有该权限的用户,才能通过该用户复制。
grant replication slave on *.* to '用户名'@'%' identified by '密码';
flush privileges;

image
如果报错,密码强度低,不符合安全策略

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

修改mysql密码安全策略之后再创建用户

set global validate_password_policy=0;
set global validate_password_length=1;
  1. 查看mysql(master)的状态,记录File 和 Position的值,配置从库需要用。执行此操作后不要执行任何操作!!!
show master status;

image

  • 配置从库(slave)
  1. 修改/etc/my.cnf配置文件
[mysqld]
server-id=102     #服务器唯一ID 
  1. 重启mysql服务
systemctl restart mysqld
  1. 登录mysql执行
change master to master_host='主机master的IP',master_user='创建的账户',master_password='密码',master_log_file='主库的Filed字段值',master_log_pos=主库的Position字段值;

image
4. 启动slave

start slave;

注意:如果是克隆的mysql可能会报错

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

因为主从mysql的uuid相同,需要修改从库uuid,与主库不一样即可。
查看mysql的位置

show variables like 'datadir';

image

修改uuid

vi /var/lib/mysql/auto.cnf
  1. 之后重启mysql服务,一切正常!
systemctl restart mysqld
  • 测试主从复制
  1. 在主库master中新建一个数据库,从库slave也会出现同样的数据库。
    image
    建表插入数据也ok
    image

标签:主库,主从复制,slave,MySql,master,mysql,mysqld,从库
From: https://www.cnblogs.com/fengxiaojie/p/16723620.html

相关文章