MySQL運行中被改權限測試

aegt6353 8年前發布 | 7K 次閱讀 MySQL 數據庫服務器

來自: http://ourmysql.com/archives/1420

今天一個接到一個朋友求助,說是數據在運行中,數據庫的目錄被改了權限。如: 數據庫目結構如下:

datadir = / data / mysql / mysql3306 / data

log - bin = / data / mysql / mysql3306 / logs

tmpdir = / data / mysql / mysql3306 / tmp

被運維同步執行了:

chown - R root : root / data / mysql / mysql3306

1.構建主從環境

mysql ; 3306 主

/ data / mysql / mysql3306 / { data , tmp , logs }

mysql ; 3307 從

/ data / mysql / mysql3307 / { data , tmp , logs }

2. 在主的wubx庫里創建:

CREATE TABLE ` t2 ` (

` id ` int ( 11 ) NOT NULL AUTO_INCREMENT ,

` name ` varchar ( 32 ) DEFAULT NULL ,

PRIMARY KEY ( ` id ` )

)

確認復制正常。

3. 把主庫的目錄權限改成root

chown - R root : root / data / mysql / mysql3306

4. 弄出來大量的寫入

for i in ` seq ( 100000 ) ; do mysql wubx - e "insert into t2(name) vlaues('golang$i')" ; done

5. 觀查主庫和從庫上數據

發現日志沒有切換時,數據都可以寫入,同步正常。 主庫上binlog還可以正常寫入。

6. 模擬日擬切換

主庫上執行: flush logs;

得到報錯:

從庫同步報錯:

1595錯誤

從這里看出來,從庫獲取到主庫日志切換指令,但主庫沒能創建出來新的日志,所以造成復制中斷。

7.結論

主庫上不影響數據寫入,但發生日志切換后,不能進行新的日志寫入,但沒卡住寫入。

從庫上在主庫日志發生切后,能得到新的日志文件名,但不能獲到新的日志,所以同步停掉。

8.修復建議:通過實驗說明,主庫上的數據是最全的,在后續日志切換失敗后,沒有影響數據的寫入。但數據沒有同步到從上。

思考:

這個有點是mysqld的一個bug的感覺了,日志已經無法寫入,但數據還可以寫入。 很容易造成同步有問題。 對于數據不同步怎么修復。多次給學生們講過,也能很快的把環境處理好。

Good luck!

</div>

 本文由用戶 aegt6353 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!