mysql的主從復制是異步的,分master/slave,在master端存在一個IO線程,而在slave下存在IO及Sql線程。
搭建環(huán)境最重要的地方在于將mysql的二進制日志功能開啟,我在搭的過程中有個細節(jié)沒注意,坑了我好久。
環(huán)境:
我的兩臺虛擬機上網方式都是采用橋接模式,不推薦nat.首先對兩臺虛擬機設置固定ip地址,和你的物理機的ip地址在一個段內,這樣你的虛擬機就很類似一臺局域網的物理機工作了。
設置固定ip地址:
$ sudo vim /etc/network/interfaces
如下:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
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,必須保證能通。
環(huán)境準備好后,可以開始了,我沒有采取rpm方式,ubuntu下直接在線安裝mysql非常方便的,省去了很多步驟。
$ sudo apt-get install mysql-server
默認安裝完自動開啟的,所以用 netstat -tap|grep mysql 看看是不是mysql服務存在了
之后查詢下mysql運行狀態(tài),service mysql status,同樣,還有其他命令,service mysql start/stop/restart.
如果出現(xiàn)了以下信息,則代表成功了。
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
前期工作準備好了,現(xiàn)在就開始配置:
在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
在出現(xiàn)的信息中找到 Slave_IO_Running/Slave_SQL_Running ,都為YES則成功了。
如果出現(xiàn)了NO,則還是查看log-error日志文件,會比較清晰的描述出來的。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com