• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創(chuàng)于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
    • 掛牌上市企業(yè)
    • 60秒人工響應(yīng)
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補(bǔ)償
    全部產(chǎn)品
    您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

    Linux環(huán)境下單機(jī)上實(shí)現(xiàn)MySQL5主從數(shù)據(jù)庫(kù)同步復(fù)制

    發(fā)布時(shí)間:  2012/9/17 17:18:55

    1.安裝MySQL(http://www.linuxidc.com/Linux/2009-03/18988.htm
    2.啟動(dòng)多個(gè)MySQL服務(wù)器
        要實(shí)現(xiàn)在單機(jī)上啟動(dòng)多個(gè)MySQL服務(wù)器,有兩種方法,一種是直接使用mysqld_safe來運(yùn)行多個(gè)服務(wù)器-
     

    當(dāng)然這樣分別編輯配置文件,而且關(guān)閉服務(wù)器的時(shí)候也要讀取配置文件,所以比較麻煩,另一種方法是使用
    MySQL提供到工具mysqld_multi腳本來管理多個(gè)服務(wù)器,下面使用的方法是mysqld_safe來實(shí)現(xiàn)。
    3.前置條件
        假設(shè)MySQL安裝到目錄為/usr/local/mysql/,設(shè)為MYSQL_DIR通常它是一個(gè)鏈接文件。
        數(shù)據(jù)文件目錄為$MYSQL_DIR/data。
    現(xiàn)在要添加另一個(gè)服務(wù)器的數(shù)據(jù)目錄,因?yàn)闉榱四M分布式服務(wù)器到同步,不可能讓多個(gè)服務(wù)器共享一個(gè)數(shù)據(jù)目錄。
    $cd $MYSQL_DIR
    $sudo cp -r -p data var2
        上面的指令將data保留原來到權(quán)限復(fù)制一份到var2,var2也就是另一個(gè)服務(wù)器的數(shù)據(jù)目錄,這樣,在原始
    狀態(tài)下,兩個(gè)數(shù)據(jù)庫(kù)服務(wù)器的數(shù)據(jù)是一致的。
    4.假設(shè)有MySQL的合法用戶root:root。
    5.啟動(dòng)安裝好以后的那個(gè)服務(wù)器
        $cd $MYSQL_DIR/bin
        $sudo ./mysqld_safe --user=mysql --binlog-do-db=test &
        上面的命令表示啟動(dòng)服務(wù)器并且使用二進(jìn)制日志記錄數(shù)據(jù)庫(kù)test的更新動(dòng)作。
    6.測(cè)試是否啟動(dòng)成功
        $mysql -u root -p -S/tmp/mysql.sock
        輸入密碼后,如果能夠成功登錄的話表示成功,這里最容易出現(xiàn)2002錯(cuò)誤,表示socket文件錯(cuò)誤,你可以
    使用命令
        $ps aux|grep mysql
    來查看當(dāng)前服務(wù)器使用的socket文件,然后在登錄的時(shí)候使用相應(yīng)的socket文件。
    7.編輯配置文件
        $sudo vi /etc/my.cnf
    最初的時(shí)候,這個(gè)配置文件是針對(duì)前面啟動(dòng)的服務(wù)器的,現(xiàn)在我們把它修改一下,然后就可以啟動(dòng)另一個(gè)服務(wù)器
    找到[mysqld]段落,然后修改如下:
    [mysqld]
    server-id=2    #原來是1
    socket=/tmp/mysql.sock2    #原來是/tmp/mysql.sock
    port=3307                #原來是3306
    #下面3行是添加的
    pid-file=$MYSQL_DIR/var2/localhost.pid2
    datadir=$MYSQL_DIR/var2
    log=$MYSQL_DIR/var2/db2.log
        注意使用最前面的MySQL安裝目錄來代替上面的$MYSQL_DIR。
    8.啟動(dòng)第二個(gè)服務(wù)器
        $cd $MYSQL_DIR/bin
        $sudo ./mysqld_safe --user=mysql  &
    9.測(cè)試第二個(gè)服務(wù)器
        $mysql -u root -p -P 3307 -S /tmp/mysql.sock2
        輸入密碼后,應(yīng)該能夠正確連接到mysql服務(wù)器。
    現(xiàn)在,兩個(gè)服務(wù)器能夠正常的運(yùn)行在同一臺(tái)機(jī)器上了,剩下的就是配置主從服務(wù)器,然后讓主服務(wù)器更新,從服務(wù)器
    連接主服務(wù)器并且保持同步。
    10.同步服務(wù)器
        注意到我們啟動(dòng)第一個(gè)服務(wù)器的時(shí)候使用了一個(gè)參數(shù)--binlog-do-db=test表示,我們希望把數(shù)據(jù)庫(kù)test的更新
    操作都記錄到二進(jìn)制日志文件中。
        1)登錄到主服務(wù)器
            $mysql -u root -p -P 3306 -S /tmp/mysql.sock
        2)查看主服務(wù)器的狀態(tài)   
            mysql>show processlist\G
                上面這條命令執(zhí)行后應(yīng)該看到至少兩個(gè)線程,第一個(gè)就是登錄的線程,第二個(gè)就是發(fā)送二進(jìn)制日志
                的線程。
            mysql>flush tables with read lock;
            mysql>show master status;
            mysql>unlock tables;
        記住show master status\G命令輸出的結(jié)果,這里的File是二進(jìn)制日志文件,Position是偏移量,Binlog_Do_DB
    表示對(duì)哪些數(shù)據(jù)庫(kù)記錄更新操作,Binlog_Ignore_DB表示忽略哪些數(shù)據(jù)庫(kù)更新。待會(huì)兒配置從服務(wù)器時(shí)要使用File和
    Position。
        3)登錄到從服務(wù)器
            $mysql -u root -p -P 3307 -S /tmp/mysql.sock2
        4)配置從服務(wù)器
            首先要確保停止從服務(wù)器同步線程
            mysql>stop slave;
            然后設(shè)置主服務(wù)器參數(shù)
            mysql>change master to
                ->master_host='127.0.0.1',
                ->master_user='root',
                ->master_password='root',
                ->master_log_file='mysql-bin.000016',
                ->master_log_pos=102;
            最后啟動(dòng)從服務(wù)器同步線程
            mysql>start slave;
            檢查從服務(wù)器同步線程是否啟動(dòng)成功
            mysql>show slave status\G
                如果從上面的輸出中看到了IO線程和LOG線程都是YES的話,那么表示啟動(dòng)成功,最后一行輸出表示從服務(wù)器
                比主服務(wù)器滯后多少。
            查看線程
            mysql>show processlist;
                當(dāng)從服務(wù)器同步成功啟動(dòng)以后,上面這條命令應(yīng)該輸出至少3個(gè)線程,第一個(gè)是登錄線程,第二個(gè)是IO線程,第
                三個(gè)是日志線程。
    11.測(cè)試同步
        在主服務(wù)器中的數(shù)據(jù)庫(kù)test中任意執(zhí)行一些更新操作,然后在從服務(wù)器中查看,應(yīng)該馬上就能夠看到更新結(jié)果。


    本文出自:億恩科技【www.vbseamall.com】

    服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      1
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線