mysql主从复制

这篇博客详细介绍了如何配置MySQL主从复制,包括在CentOS7虚拟机上安装MySQL,修改UUID,配置主机与从机,设置远程连接,以及解决在主从复制过程中遇到的常见错误,如配置文件错误、UUID冲突、数据编码问题等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql主从复制

  • 创建两个虚拟机-centos7(参考安装虚拟机文档)

  • 在虚拟机安装mysql5.6 (参考安装mysql文档) 第二台克隆即可

  • 关闭两台虚拟机的防火墙

    • systemctl stop firewalld.service
  • 修改克隆机上mysql的UUID

    • vim /var/lib/mysql/auto.cnf
  • 配置主机

    • vim /etc/my.cnf
      • 在[mysqld]下加入 log-bin=mysql-bin server_id=173 # (一般取ip最后部分)
      • 重启mysql service mysqld restart
  • 配置从机

    • vim /etc/my.cnf
      • 在[mysqld]下加入 ①server_id=161
      • 重启mysql service mysqld restart
  • 设置两台mysql可以远程连接

    • GRANT ALL PRIVILEGES ON . TO ‘root’@’%'IDENTIFIED BY ‘root’ WITH GRANT OPTION
  • 操作主机

    • 创建连接主机的用户:CREATE USER ‘slave01’@’%’ IDENTIFIED BY ‘root’;
    • 授予权限:GRANT REPLICATION SLAVE ON . TO ‘slave01’@’%’;
    • 刷新权限:FLUSH PRIVILEGES;
  • 查看主机日志:SHOW MASTER STATUS
    在这里插入图片描述

  • 操作从机

mysql>CHANGE MASTER TO MASTER_HOST = '192.168.10.173', 
MASTER_USER = 'slave01', MASTER_PASSWORD = 'root',
MASTER_PORT = 3306, MASTER_LOG_FILE = 'mysql-bin.000042' ,
MASTER_LOG_POS = 445 ;
语句意思:
MASTER_HOST:主服务器的IP。
MASTER_USER:配置主服务器时建立的用户名
MASTER_PASSWORD:用户密码
MASTER_PORT:主服务器mysql端口,如果未曾修改,默认即可。
MASTER_LOG_FILE:日志文件名
MASTER_LOG_POS:文件指针位置

  • 开启从机备份
    • 开启从机备份:start slave
    • 查看从机状态:show slave status\G;
      在这里插入图片描述
  • 测试
    • 在主机插入数据。从重机查看。
  • 常见问题
    ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO
    原因一。从机配置文件没有server-id
    原因二。从机与主机server-id 一致
    原因三。没有配置从机
    lave failed to initialize relay log info structure from the repositor
    原因一。mysql默认产生的relay_log名被该server上的另一个mysql slave占用了
    解决方法:
    1.在主机my.cnf中添加,relay_log=/db/mysql56/logs/relay_98_3326再重启mysql
    2.在从机执行 stop slave; 再执行reset slave;
    SHOW SLAVE STATUS\G;时 出现以下情况;也是代表配置失败
    在这里插入图片描述
    . 原因:主机名或用户名或密码或pos值不对
    解决:重新配置

SHOW SLAVE STATUS\G;时 出现以下情况;也是代表配置失败
在这里插入图片描述
原因一 mysql是通过克隆安装的。UUID会一样。所以会出现这样的问题
解决:查看主机和从机UUID是否一致
show variables like ‘%server_uuid%’;
进入到主机或从机/var/lib/mysql/auto.cnf修改uuid之后重启该数据库

插入数据出下以下情况
在这里插入图片描述
问题:数据编码问题
解决方案:
修改mysql的配置文件(主从都修改)
打开vim /etc/my.cnf加入以下配置
[client]
default-character-set=utf8
/[mysqld]/
character-set-server=utf8
重启即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值