mysql主从数据库不同步的2种解决方法
(2014-04-26 08:16:11)
标签:
今天
适用于
数据
今天收现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> stop slave;
9.查看同步状况
mysql> show slave status\G 查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
好了,同步完成啦。
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。