小記一次mysql主從設置裝備擺設處理計劃。本站提示廣大學習愛好者:(小記一次mysql主從設置裝備擺設處理計劃)文章只能為提供參考,不一定能成為您想要的結果。以下是小記一次mysql主從設置裝備擺設處理計劃正文
明天研討了個開源項目,數據庫是mysql的,個中的劇本數據須要備份,因為自己的機械時mac pro,並且mac下的數據庫銜接對象都不怎樣好用,就想著若何應用windows下的數據庫銜接對象應用,並做相干備份,別的windows體系下的sqlyog對象照樣異常壯大的,在此推舉。
是以為了應用sqlyog等windows體系下的銜接對象,便開端了一天的折騰。
起首兩種思緒,其一是應用別的一台宏碁筆記本電腦,直接在其上裝置sqlyog應用,經由過程無線局域網停止銜接應用,這類方法太甚費事,並且往返換電腦很費事,長途銜接應用也很慢。其二是裝置虛擬機,在虛擬機上裝置銜接對象。
因為自己的mac pro曾經裝置mysql數據庫,而且曾經裝置了virtualbox虛擬機並裝置了windows7體系,並在windows7體系中也裝置了mysql。
1.在虛擬機win7體系中裝置sqlyog,直接銜接mac體系的mysql,並導出備份,這個很簡略。(固然要留意虛擬機與mac機械的收集銜接是通的)
1)起首要設置虛擬機網卡設置,選擇橋接形式,virtualbox這類虛擬機的橋接形式的概念是虛擬機作為收集中的一台零丁的機械,有本身的ip,與局域網中的ip是想通的,
設置virtualbox的橋接形式如圖所示
!
如許依照圖中的設置,虛擬機根主機便可以互相拜訪了。
2)應用sqlyog停止銜接
對了 還有一點須要留意的是,因為局域網ip能夠不會固定,正好自己用的是小米路由器,有綁定裝備ip的功效,如許ip就固定啦
從下面的圖中可以看出,主機ip跟虛擬機ip是自力的啦。
2.mysql主從備份的方法,mac pro為主master,虛擬機為從slave
1)起首因為mac電腦mysql客戶端裝置完成後,默許是沒有my.cnf文件的,即便修正了/usr/local/mysql/的相干設置裝備擺設也是沒有效的,這就須要自界說mysql設置裝備擺設了,將/usr/local/mysql/support-files/中的my-default.cnf 文件 拷貝到/etc目次下,固然這裡也碰見成績了,辦事啟動不了了
這就須要在設置裝備擺設文件中參加explicit_defaults_for_timestamp=true
2)修正設置裝備擺設文件,以下所示
3)修正虛擬機中的mysql目次中的my.cnf
修正mysqld節點
4)重啟master及slave並檢查狀況
檢查master狀況
檢查slave狀況
當看到下面兩張圖片的時刻則證實設置裝備擺設勝利,固然自己並沒有那末順遂,半途碰到了許多成績
其一:Got fatal error 1236 from master when reading data from binary log
這中成績依照網上年夜部門的處理辦法是,起首檢查master的狀況,並記載下相干信息
好比信息為:
要記載下file:mysql-bin.000002 position:16093
並在slave中履行:
這類方法應當是沒有成績的。假如下面這類方法不可,可以嘗嘗上面這類,自己試了試應當是沒成績,
(這類方法自己可以能夠是由於自己設置裝備擺設的時刻沒有依照標准來,招致主從紛歧致的緣由)
其二:Slave can not handle replication events with the checksum that master is configured to log
這個毛病普通湧現在master5.6,slave在低版本的情形下。這是因為5.6應用了crc32做binlog的checksum。除把master的設置從crc32改到none
binlog-checksum = none [my.cnf]
其三:自己明天消費了年夜量的時光重要緣由就是這點了,自己在虛擬機裡檢查slave狀況顯示都准確,
然則自己經由過程虛擬機的銜接對象,將master數據庫中添加了一張表並拔出數據,然則老是沒有同步到從mysql,因而檢查過程
從mysql過程
master過程
這點成績也就是糾結了一天的成績,固然也沒有找出詳細緣由,看提醒緣由貌似是甚麼過程曾經睡眠的緣由,然則為啥睡眠沒弄明確,檢查slave hosts也沒有查到
固然最初,沒方法了,糾結了良久也沒有發明甚麼緣由的情形下,自己直接在mac機械上直接經由過程終端拔出數據,竟然勝利了。。。無語。。不外終究可以或許同步了至多還有點欣喜。至於甚麼湧現這個成績要找時光好好查找緣由了。