mysql5.7 Linux环境下主从复制配置过程(操作)

目的:通过配置主从复制,将131数据库配置为master(主),132数据库配置为slave(从),131更新数据可实时同步到132数据库。实现131宕机后可切换到132维持网站正常运作。

现状

【1】131、132的主从复制功能未打开。

【2】131数据库已存在数据:

【3】132数据库无数据:

 

预计效果:配置成功

操作步骤

  • 同步131与132 Linux服务器时间。
  • 教程 https://blog.csdn.net/yabingshi_tech/article/details/121382566

  1. 1.安装ntp
  2. cd ntp-4.2.8p15/
  3. ./configure --prefix=/usr/local/ntp-4.2.8p15 --enable-all-clocks --enable-parse-clocks
  4. make
  5. make install
  6. ln -s /usr/local/ntp-4.2.8p15 /usr/local/ntp
  7. vi /root/.bash_profile
  8. 在PATH这行末尾添加【  :/usr/local/ntp/bin  】
  9. source /root/.bash_profile

  1. 2.配置131
  2. vi /etc/ntp.conf
  3. 添加:【
  4. interface listen 0.0.0.0
  5. server 127.127.1.0
  6. fudge 127.127.1.0 stratum 10
  7. restrict xxx.xx.xx.0 mask 255.255.255.0 nomodify notrap
  8. /usr/local/ntp/bin/ntpd -c /etc/ntp.conf -l  /usr/local/ntp/ntp.log
  9. vi /etc/rc.d/rc.local
  10. 添加:
  11. /usr/local/ntp/bin/ntpd -c /etc/ntp.conf -l  /usr/local/ntp/ntp.log

  1. 3.配置132
  2. /usr/local/ntp/bin/ntpdate xxx.xx.xx.131   命令失败,时区错误
  3. 修改时区:教程https://blog.csdn.net/weixin_33810302/article/details/92991000?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-92991000-blog-113311984.pc_relevant_3mothn_strategy_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-92991000-blog-113311984.pc_relevant_3mothn_strategy_recovery&utm_relevant_index=2
  4. /usr/local/ntp/bin/ntpdate xxx.xx.xx.131
  5. crontab -e
  6. 添加:
  7. */30 * * * *  /usr/local/ntp/bin/ntpdate xxx.xx.xx.131

  • 主从复制配置

Master(主):131

Slave(从):132

  1. 导出131数据库中的旧数据

mysqldump -uroot -p --databases [DataBase1] > /opt/[DataBase1].sql

mysqldump -uroot -p --databases [DataBase2] > /opt/[DataBase2].sql

  1. 发送到132服务器,并导入数据库

scp ./[DataBase1].sql root@xxx.xx.xx.132:/opt

scp ./[DataBase2].sql root@xxx.xx.xx.132:/opt

mysql -uroot -p < /opt/[DataBase1].sql

mysql -uroot -p < /opt/[DataBase2].sql

  1. 修改131my.cnf配置,并重启mysql服务

vi /etc/my.cnf 添加

 

(参数:log-bin,服务id唯一,需要复制的库,需要复制的库)

  1. 131 mysql中创建一个slave用户并且授权来自132的ip地址可以访问131数据。grant replication slave on *.* to slave@'xxx.xx.xx.132' identified by 'trsAdmin@2019';
  2. 131查看show master status;                                                                                                                

 

前两个字段值需要关注(每次不固定),后续有用

  1. 修改132my.cnf配置,并重启mysql服务

vi /etc/my.cnf 添加

 

  1. 132 mysql 执行,绑定master:

CHANGE MASTER TO MASTER_HOST='xxx.xx.xx.131', MASTER_PORT=3306, MASTER_USER='slave', MASTER_PASSWORD='密码', MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=154;

MASTER_HOST 主服务器ip

MASTER_USER 步骤4创建的授权用户名

MASTER_PASSWORD 上述用户登录密码

MASTER_LOG_FILE,MASTER_LOG_POS 步骤5的前两个字段(请再次执行步骤5确认字段值未改变)

(备注:Reset slave命令 可用于取消上述命令)

  1. 132 mysql开启slave

start slave;

(关闭命令:stop slave)

  1. 132 mysql查看状态

show slave status\G; 

 

(两个yes表示配置成功,如果出现其他状态,代表失败

  • 测试
  1. 测试实时备份功能是否成功

        1.1、131 [DataBase1]库新建testdb表,切换到132数据库查看

        发现bug:二、3中配置的数据库名写错了,trswas应改成[DataBase1]

        修改bug过程:

        1、132 mysql中执行 stop slave;  reset slave;

        2、131修改my.cnf中错误库名

        3、131中执行service mysqld restart

        4、131数据库出查看show master status,关注前两个字段

        5、132 mysql中执行二、7的命令(参数修改为上一步骤重新获取的两个字段值)

        6、132 mysql中执行start slave;

        7、132 mysql中执行二、9命令检查双yes

        1.2、重新测试在131中的[DataBase1]与[DataBase2]库中新建与删除数据表。132同步成功

        2. 测试数据一致性

        需安装percona-toolkit及其依赖的perl-devel

        现阶段数据是一致的,请确实是否有必要测试

-------------------------------

感谢参考:

mysql从服务器配置_mysql主从服务器配置基础教程_vaba的博客-CSDN博客

mysql主从复制配置_hmb↑的博客-CSDN博客_mysql主从复制配置

Mysql主从同步时Slave_IO_Running:Connecting ; Slave_SQL_Running:Yes的情况故障排除_MegaBytes的博客-CSDN博客

MySql数据库主从复制一致性的校验方案 - 疯子丶pony - 博客园

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值