如今測試的是兩個mysql都是新的,沒數據的。若是master有數據的,將數據庫導出,並導入slave數據庫中,在啓動同步以前,兩邊的數據要一致。mysql
PS: 主從服務器的版本能夠不同,可是從服務器的版本必須高於主服務器的版本。sql
master:192.168.80.24數據庫
slave :192.168.80.45服務器
一、主服務器上進行操做ide
(1)建立同步用戶並受權測試
mysql>insert into mysql.user(host,user,password) values("localhost","repl",password("repl"));spa
mysql>flush privileges;3d
mysql>grant replication slave on *.* to ‘repl’@‘192.168.80.45' identified by 'repl';日誌
PS:建立用戶還能夠:CREATE USER 'user'@ 'X.X.X.X' IDENTIFIED BY 'password';server
(2)修改my.cnf文件,在[mysqld]下添加下面兩行:
log-bin=mysql-bin
server-id=24
server-id #服務器id,通常取ip地址末段
log-bin=mysql-bin #啓動二進制日誌
而後重啓mysql服務
(3)登錄mysql查詢主數據庫的狀態
mysql> show master status;
記下File以及Position的值,在後面進行從服務器操做的時候須要使用。
二、配置從服務器
(1)修改從服務器的配置文件/etc/my.cnf,在[mysqld]下面添加:
server-id=45 肯定這個id沒有被別的mysql服務所使用。
log-bin=mysql-bin
而後啓動或者重啓從數據庫
(2)登陸mysql
mysql -uroot -p
(3)執行同步的sql語句
mysql>change master to master_host='192.168.80.24',master_user='repl',master_password='repl',
master_log_file='mysql-bin.000001',master_log_pos=107;
(4)執行正確後再執行
mysql> start slave;
這樣就啓動了slave同步功能。
(5)主從同步檢查
執行以下語句
mysql>show slave status\G
Slave_IO進程以及slave_SQL進程都必須正常運行,在狀態輸出中表現爲:「slave」;不然都是不正確,兩個進程的狀態(如一個值是Yes,另外一個是No則不行)。