ubuntu14下搭建mysql主從服務器

    mysql的主從複製是異步的,分master/slave,在master端存在一個IO線程,而在slave下存在IO及Sql線程。
mysql

    搭建環境最重要的地方在於將mysql的二進制日誌功能開啓,我在搭的過程當中有個細節沒注意,坑了我很久。
sql

    環境:
ubuntu

        個人兩臺虛擬機上網方式都是採用橋接模式,不推薦nat.首先對兩臺虛擬機設置固定ip地址,和你的物理機的ip地址在一個段內,這樣你的虛擬機就很相似一臺局域網的物理機工做了。vim

        設置固定ip地址:異步

        $ sudo vim /etc/network/interfaces  ide

        以下:oop

            # interfaces(5) file used by ifup(8) and ifdown(8)測試

            auto lospa

            iface lo inet loopback線程

            auto eth0

            iface eth0 inet static

            address 192.168.1.252

            netmask 255.255.255.0

            gateway 192.168.1.1

        $ sudo /etc/init.d/networking restart  

        個人虛擬機地址各設爲:192.168.1.251   192.168.1.252  網關IP:192.168.1.1

        設置完後,首先在虛擬機中互ping,必須保證能通。

    環境準備好後,能夠開始了,我沒有采起rpm方式,ubuntu下直接在線安裝mysql很是方便的,省去了不少步驟。

    $ sudo apt-get install mysql-server

   默認安裝完自動開啓的,因此用 netstat -tap|grep mysql 看看是否是mysql服務存在了

   以後查詢下mysql運行狀態,service mysql status,一樣,還有其餘命令,service mysql                  start/stop/restart.

    若是出現瞭如下信息,則表明成功了。

    mysql start/running, process 1199

    在登錄前先到/etc/mysql/my.cnf下 將bind-address註釋掉,由於默認只能本機訪問。

    登錄mysql

    mysql -u root -p 

    grant replication slave,reload,super on *.* to slave @192.168.1.152 identified by '1234'

    而後在另外一臺Ubuntu下遠程測試下

    mysql -u slave -h 192.168.1.151 -p

    前期工做準備好了,如今就開始配置:

    在master 192.168.1.251的機子上對my.cnf修改,切記如下配置信息必定要加到【mysqld】模塊中,放在文件其餘位置會致使master配置失敗。

    server-id=1

    log_bin=/var/log/mysql/mysql-bin.log

    binlog_do_db=student

    binlog_ignore_db=mysql

    重啓下mysql

    sudo  /etc/init.d/mysql restart

    若是在重啓過程當中failed,建議先看下my.cnf的log-error對應得錯誤日誌文件位置,而後cat看下報錯信息

    以後進入master的mysql,首先看下二進制功能是否on.

    show variables like 'log%' 

    若是爲off表明沒開啓,則仍是返回檢查下my.cnf文件,是否放在[mysqld]那塊中等。文件路徑是否對了

    show master status;則能看到對應得file position 信息,這些在從機設置的時候要用到。

    最後到salve 192.168.1.252的/etc/mysql/my.cnf下配置:

    server-id=2

    log_bin=/var/log/mysql/mysql-bin.log

    replicate_do_db=student

    重啓下mysql

    sudo  /etc/init.d/mysql restart

     slave進入mysql:

     stop slave

      而後設置從master複製日誌配置

      change master to master_host='192.168.1.151' ,master_user='slave',master_password='1234',

      master_log_file='log.000004',master_log_pos=94;

      log_file log_pos則是在master下show master status看到的file position信息。

      start slave;

      show slave status\G

       在出現的信息中找到 Slave_IO_Running/Slave_SQL_Running ,都爲YES則成功了。

        若是出現了NO,則仍是查看log-error日誌文件,會比較清晰的描述出來的。

相關文章
相關標籤/搜索