两种方法解决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 status\G
Slave_IO_Running: Yes
Slave_SQL_Running: No
可见是Slave不同步
下面介绍两种解决方法:
方法一:忽略错误后,继续同步
该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况
解决:
stop slave;
#表示跳过一步错误,后面的数字可变
set global sql_slave_skip_counter =1;
start slave;
之后再用mysql show slave status\G 查看:
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,test,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 start slave;
9、查看同步状态
mysql show slave status\G 查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
好了,同步完成啦。
====================================分割线================================
最新内容请见作者的GitHub页:http://qaseven.github.io/
【大数据开发运维解决方案】Sqoop增量同步mysql/oracle数据到hive(merge-key/append)测试文档 上一篇文章介绍了sqoop全量同步数据到hive, 本片文章将通过实验详细介绍如何增量同步数据到hive,以及sqoop job与crontab定时结合无密码登录的增量同步实现方法。
【大数据开发运维解决方案】Sqoop全量同步mysql/Oracle数据到hive 前面文章写了如何部署一套伪分布式的handoop+hive+hbase+kylin环境,也介绍了如何在这个搭建好的伪分布式环境安装配置sqoop工具以及安装完成功后简单的使用过程中出现的错误及解决办法, 接下来本篇文章详细介绍一下使用sqoop全量同步oracle/mysql数据到hive,这里实验采用oracle数据库为例,
MySQL同步数据到Elasticsearch 随着平台的业务日益增多,基于数据库的全文搜索查询速度较慢,已经无法满足需求。所以,决定基于Elasticsearch 做一个全文搜索平台,支持业务相关的搜索需求。那么第一个问题就是:如何从MySQL同步数据到Elasticsearch?
相关文章
- Mysql加锁过程详解(2)-关于mysql 幻读理解
- mysql binary like_MYSQL的binary解决mysql数据大小写敏感问题的方法
- 【MySQL高级】MySql中常用工具及Mysql 日志
- 关于spring中使用mysql数据库明明配置了事务管理却失效的原因及解决方法
- 关于Mysql 查询所有表的实时记录用于对比2个MySQL 库的数据是否异步
- mysql远程连接 Host * is not allowed to connect to this MySQL server
- Latch导致MySQL Crash
- Navicat for MySQL每次打开数据库时,总是弹出“取得ER图表信息”框的解决方法
- pip install mysql-python
- mysql 之 一个库中所有表复制到另一个数据库中的方法和工具
- MySQL数据库介绍——包含索引、视图、事务、引擎
- Can't connect to MySQL server on localhost (10061)解决方法
- JDBC 连接 MySQL 异常:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed
- Mysql基础之 binary关键字
- MySQL实现从其他表查询数据并插入另外一张表
- mysql 索引类型
- 在centos中php 在连接mysql的时候,出现Can't connect to MySQL server on 'XXX' (13)
- MySQL建立双向主备复制server配置方法
- Mysql error.log报错:Error: Table “mysql”.“innodb_table_stats” not found
- (5.12)mysql高可用系列——复制中的在线切换GTID模式/增加节点/删除节点
- CentOS7快速安装mysql