欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

小記一次mysql主從配置解決方案

 更新時(shí)間:2015年10月08日 08:59:22   投稿:hebedich  
mysql主從方案主要作用:讀寫分離,使數(shù)據(jù)庫(kù)能支撐更大的并發(fā)。在報(bào)表中尤其重要。由于部分報(bào)表sql語句非常的慢,導(dǎo)致鎖表,影響前臺(tái)服務(wù)。如果前臺(tái)使用master,報(bào)表使用slave,那么報(bào)表sql將不會(huì)造成前臺(tái)鎖,保證了前臺(tái)速度。

  今天研究了個(gè)開源項(xiàng)目,數(shù)據(jù)庫(kù)是mysql的,其中的腳本數(shù)據(jù)需要備份,由于本人的機(jī)器時(shí)mac pro,而且mac下的數(shù)據(jù)庫(kù)連接工具都不怎么好用,就想著如何利用windows下的數(shù)據(jù)庫(kù)連接工具使用,并做相關(guān)備份,另外windows系統(tǒng)下的sqlyog工具還是非常強(qiáng)大的,在此推薦。

  因此為了使用sqlyog等windows系統(tǒng)下的連接工具,便開始了一天的折騰。

  首先兩種思路,其一是利用另外一臺(tái)宏碁筆記本電腦,直接在其上安裝sqlyog使用,通過無線局域網(wǎng)進(jìn)行連接使用,這種方式太過麻煩,而且來回?fù)Q電腦很麻煩,遠(yuǎn)程連接使用也很慢。其二是安裝虛擬機(jī),在虛擬機(jī)上安裝連接工具。

  由于本人的mac pro已經(jīng)安裝mysql數(shù)據(jù)庫(kù),并且已經(jīng)安裝了virtualbox虛擬機(jī)并安裝了windows7系統(tǒng),并在windows7系統(tǒng)中也安裝了mysql。

  1.在虛擬機(jī)win7系統(tǒng)中安裝sqlyog,直接連接mac系統(tǒng)的mysql,并導(dǎo)出備份,這個(gè)很簡(jiǎn)單。(當(dāng)然要注意虛擬機(jī)與mac機(jī)器的網(wǎng)絡(luò)連接是通的)

    1)首先要設(shè)置虛擬機(jī)網(wǎng)卡設(shè)置,選擇橋接模式,virtualbox這類虛擬機(jī)的橋接模式的概念是虛擬機(jī)作為網(wǎng)絡(luò)中的一臺(tái)單獨(dú)的機(jī)器,有自己的ip,與局域網(wǎng)中的ip是想通的,

      設(shè)置virtualbox的橋接模式如圖所示

     !

      

這樣按照?qǐng)D中的設(shè)置,虛擬機(jī)根主機(jī)就可以相互訪問了。

  2)利用sqlyog進(jìn)行連接

  

對(duì)了 還有一點(diǎn)需要注意的是,由于局域網(wǎng)ip可能不會(huì)固定,正好本人用的是小米路由器,有綁定設(shè)備ip的功能,這樣ip就固定啦

從上面的圖中可以看出,主機(jī)ip跟虛擬機(jī)ip是獨(dú)立的啦。

2.mysql主從備份的方式,mac pro為主master,虛擬機(jī)為從slave

1)首先由于mac電腦mysql客戶端安裝完成后,默認(rèn)是沒有my.cnf文件的,即使修改了/usr/local/mysql/的相關(guān)配置也是沒有用的,這就需要自定義mysql配置了,將/usr/local/mysql/support-files/中的my-default.cnf 文件 拷貝到/etc目錄下,當(dāng)然這里也遇見問題了,服務(wù)啟動(dòng)不了了

這就需要在配置文件中加入explicit_defaults_for_timestamp=true

2)修改配置文件,如下所示

3)修改虛擬機(jī)中的mysql目錄中的my.cnf

修改mysqld節(jié)點(diǎn)

4)重啟master及slave并查看狀態(tài)

查看master狀態(tài)

查看slave狀態(tài)

當(dāng)看到上面兩張圖片的時(shí)候則證明配置成功,當(dāng)然本人并沒有那么順利,中途遇到了很多問題

其一:Got fatal error 1236 from master when reading data from binary log
這中問題按照網(wǎng)上大部分的解決方法是,首先查看master的狀態(tài),并記錄下相關(guān)信息
比如信息為:


要記錄下file:mysql-bin.000002 position:16093
并在slave中執(zhí)行:

這種方式應(yīng)該是沒有問題的。如果上面這種方式不行,可以試試下面這種,本人試了試應(yīng)該是沒問題,

(這種方式本人可以可能是因?yàn)楸救伺渲玫臅r(shí)候沒有按照規(guī)范來,導(dǎo)致主從不一致的原因)

其二:Slave can not handle replication events with the checksum that master is configured to log
  這個(gè)錯(cuò)誤一般出現(xiàn)在master5.6,slave在低版本的情況下。這是由于5.6使用了crc32做binlog的checksum。除了把master的設(shè)置從crc32改到none
  binlog-checksum = none [my.cnf]

其三:本人今天花費(fèi)了大量的時(shí)間主要原因便是這點(diǎn)了,本人在虛擬機(jī)里查看slave狀態(tài)顯示都正確,

但是本人通過虛擬機(jī)的連接工具,將master數(shù)據(jù)庫(kù)中添加了一張表并插入數(shù)據(jù),但是總是沒有同步到從mysql,于是查看進(jìn)程
從mysql進(jìn)程

master進(jìn)程

這點(diǎn)問題也就是糾結(jié)了一天的問題,當(dāng)然也沒有找出具體原因,看提示原因貌似是什么進(jìn)程已經(jīng)睡眠的原因,但是為啥睡眠沒搞明白,查看slave hosts也沒有查到

當(dāng)然最后,沒辦法了,糾結(jié)了很久也沒有發(fā)現(xiàn)什么原因的情況下,本人直接在mac機(jī)器上直接通過終端插入數(shù)據(jù),居然成功了。。。無語。。不過最終能夠同步了至少還有點(diǎn)欣慰。至于什么出現(xiàn)這個(gè)問題要找時(shí)間好好查找原因了。

相關(guān)文章

最新評(píng)論