加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

mysql主从数据库不同步的2种解决方法

发布时间:2020-12-12 07:11:51 所属栏目:MsSql教程 来源:网络整理
导读:今天发现Mysql的主从数据库没有同步 先上Master库 : mysqlshow processlist; 查看下进程是否Sleep太多。发现很正常。 show master status; 也正常。 mysql show master status; +-------------------+----------+--------------+---------------------------
今天发现Mysql的主从数据库没有同步
先上Master库
mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。
show master status; 也正常。
mysql> show master status;
+-------------------+----------+--------------+-------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+-------------------------------+
| mysqld-bin.000001 | 3260 | | mysql,test,information_schema |
+-------------------+----------+--------------+-------------------------------+
1 row in set (0.00 sec)
再到Slave上查看
mysql> show slave statusG
Slave_IO_Running: Yes
Slave_SQL_Running: No
可见是Slave不同步

下面介绍两种解决方法
方法一:忽略错误后,继续同步
该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况
解决:
stop slave;
#表示跳过一步错误,后面的数字可变
set global sql_slave_skip_counter =1;
start slave;
之后再用mysql> show slave statusG 查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
ok,现在主从同步状态正常了。。。

方式二:重新做主从,完全同步
该方法适用于主从库数据相差较大,或者要求数据完全统一的情况
解决步骤如下:
1.先进入主库,进行锁表,防止数据写入
使用命令:
mysql> flush tables with read lock;
注意:该处是锁定为只读状态,语句不区分大小写
2.进行数据备份
#把数据备份到mysql.bak.sql文件
[root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql
这里注意一点:数据库备份一定要定期进行,可以用shell脚本或者python脚本,都比较方便,确保数据万无一失
3.查看master 状态
mysql> show master status;
+-------------------+----------+--------------+-------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+-------------------------------+
| mysqld-bin.000001 | 3260 | | mysql,information_schema |
+-------------------+----------+--------------+-------------------------------+
1 row in set (0.00 sec)
4.把mysql备份文件传到从库机器,进行数据恢复
#使用scp命令
[root@server01 mysql]# scp mysql.bak.sql root@192.168.128.101:/tmp/
5.停止从库的状态
mysql> stop slave;
6.然后到从库执行mysql命令,导入数据备份
mysql> source /tmp/mysql.bak.sql
7.设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项
change master to master_host = '192.168.128.100',master_user = 'rsync',master_port=3306,master_password='',master_log_file = 'mysqld-bin.000001',master_log_pos=3260;
8.重新开启从同步
mysql> stop slave;
9.查看同步状态
mysql> show slave statusG 查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
好了,同步完成啦。

您可能感兴趣的文章:

  • MySQL主从同步、读写分离配置步骤
  • MySQL主从复制的原理及配置方法(比较详细)
  • 解读mysql主从配置及其原理分析(Master-Slave)
  • Mysql主从同步备份策略分享
  • MYSQL主从不同步延迟原理分析及解决方案
  • linux系统下实现mysql热备份详细步骤(mysql主从复制)
  • Mysql主从复制(master-slave)实际操作案例
  • linux下指定mysql数据库服务器主从同步的配置实例
  • MySQL主从复制配置心跳功能介绍
  • MySQL主从原理及配置详解

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读