從服務(wù)上,停掉slave數(shù)據(jù)庫。主服務(wù)器上,導(dǎo)出新數(shù)據(jù)庫。主服務(wù)器上,修改my.cnf文件,添加新庫到binlog-do-db參數(shù),重啟mysql。在導(dǎo)出的newdb.sql里面查找當(dāng)前的日志文件以及位置(changemasterto)然后讓slave服務(wù)器執(zhí)行到這個位置。startslaveuntilMASTER_LOG_FILE=”mysql-bin.000001“,MASTER_LOG_POS=1222220。其中MASTER_LOG_FILE以及MASTER_LOG_POS在導(dǎo)出的數(shù)據(jù)庫newdb.sql頂部位置查找。導(dǎo)入新庫到從服務(wù)器上。最后startslave即可。

成都創(chuàng)新互聯(lián)公司擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊,在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕10多年,專業(yè)且經(jīng)驗豐富。10多年網(wǎng)站優(yōu)化營銷經(jīng)驗,我們已為上1000家中小企業(yè)提供了成都做網(wǎng)站、成都網(wǎng)站建設(shè)解決方案,按需設(shè)計,設(shè)計滿意,售后服務(wù)無憂。所有客戶皆提供一年免費(fèi)網(wǎng)站維護(hù)!
這種方法也同樣適用于某個數(shù)據(jù)庫或者某個數(shù)據(jù)表不同步的情況,比如主從數(shù)據(jù)庫有一個表由于某些原因數(shù)據(jù)不一致,那么上面的方法只需要去掉重啟數(shù)據(jù)庫一步,其他的操作基本一樣。
今天發(fā)現(xiàn)Mysql的主從數(shù)據(jù)庫沒有同步
先上Master庫:
mysqlshow
processlist;
查看下進(jìn)程是否Sleep太多。發(fā)現(xiàn)很正常。
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不同步
下面介紹兩種解決方法:
方法一:忽略錯誤后,繼續(xù)同步
該方法適用于主從庫數(shù)據(jù)相差不大,或者要求數(shù)據(jù)可以不完全統(tǒng)一的情況,數(shù)據(jù)要求不嚴(yán)格的情況
解決:
stop
slave;
#表示跳過一步錯誤,后面的數(shù)字可變
set
global
sql_slave_skip_counter
=1;
start
slave;
之后再用mysql
show
slave
status\G
查看:
Slave_IO_Running:
Yes
Slave_SQL_Running:
Yes
ok,現(xiàn)在主從同步狀態(tài)正常了。。。
方式二:重新做主從,完全同步
該方法適用于主從庫數(shù)據(jù)相差較大,或者要求數(shù)據(jù)完全統(tǒng)一的情況
解決步驟如下:
1.先進(jìn)入主庫,進(jìn)行鎖表,防止數(shù)據(jù)寫入
使用命令:
mysql
flush
tables
with
read
lock;
注意:該處是鎖定為只讀狀態(tài),語句不區(qū)分大小寫
2.進(jìn)行數(shù)據(jù)備份
#把數(shù)據(jù)備份到mysql.bak.sql文件
[root@server01
mysql]#mysqldump
-uroot
-p
-hlocalhost
mysql.bak.sql
這里注意一點(diǎn):數(shù)據(jù)庫備份一定要定期進(jìn)行,可以用shell腳本或者python腳本,都比較方便,確保數(shù)據(jù)萬無一失
3.查看master
狀態(tài)
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備份文件傳到從庫機(jī)器,進(jìn)行數(shù)據(jù)恢復(fù)
#使用scp命令
[root@server01
mysql]#
scp
mysql.bak.sql
root@192.168.128.101:/tmp/
5.停止從庫的狀態(tài)
mysql
stop
slave;
6.然后到從庫執(zhí)行mysql命令,導(dǎo)入數(shù)據(jù)備份
mysql
source
/tmp/mysql.bak.sql
7.設(shè)置從庫同步,注意該處的同步點(diǎn),就是主庫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.查看同步狀態(tài)
mysql
show
slave
status\G
查看:
Slave_IO_Running:
Yes
Slave_SQL_Running:
Yes
好了,同步完成啦。
我也遇到了這個問題,我是這樣解決的:
第一show variables like '%server_id%';看看是不是沒有設(shè)置成功
第二看看是不是數(shù)據(jù)庫的版本不同,
網(wǎng)站標(biāo)題:包含mysql怎么不同步的詞條
轉(zhuǎn)載來源:http://chinadenli.net/article20/hjooco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、關(guān)鍵詞優(yōu)化、建站公司、網(wǎng)站內(nèi)鏈、ChatGPT、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)