標籤:col socket form 日誌 授權 star 結果 一句話 art
server1: ip:1.1.1.1
server2: ip:1.1.1.2
<1> 修改server1的設定檔vim /etc/my.cnf
[mysqld]
vim /etc/my.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
log_bin=bin_log
server-id=1
#指定binlog記錄的庫,其他庫就不記錄了可以用,來分隔指定多個庫
binlog-ignore-db = mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
binlog-do-db=mobi
replicate-do-db=mobi
replicate-do-table=mobi.test1
# 允許複製主服務的庫的哪一張表,需要多張表就要寫多行
replicate-do-table=mobi.test2
<2>修改server2的設定檔vim /etc/my.cnf
[mysqld]
vim /etc/my.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
log_bin=bin_log
server-id=2
binlog-do-db=mobi
binlog-ignore-db = mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
replicate-do-db=mobi
replicate-do-table=mobi.test1
replicate-do-table=mobi.test2
#除了server-id不同之外和server1幾乎一樣的配置 <3>分別進入server1和server2的myqsql命令列終端
server1:
mysql>grant replication slave on *.* to [email protected]"1.1.1.2" identified by "password" ; #授權一個可以串連主庫的使用者。
mysql>show master status; #查看當前使用的記錄檔(file)以及記錄位移量(position),記錄下來等下做同步時要用。
例如顯示結果為:file為binlog.000001 position為253
server2:
mysql>grant replication slave on *.* to [email protected]"1.1.1.1" identified by "password" ; #授權一個可以串連主庫的使用者。
mysql>show master status; #查看當前使用的記錄檔(file)以及記錄位移量(position),記錄下來等下做同步時要用。
例如顯示結果為:file為binlog.000001 position為322
<4>分別執行同步命令
server1:
mysql>change master to master_host="1.1.1.2" ,master_user="slave" ,master_password="password",
->master_ log_file="binlog.000001",master_log_pos=322;
mysql>start slave;
server2:
mysql>change master to master_host="1.1.1.1" ,master_user="slave" ,master_password="password",
->master_ log_file="binlog.000001",master_log_pos=253;
mysql>start slave;
<5>查看同步情況,進入server1和server2分別輸入一下命令
mysql>show slave status\G;
#如果IO/SQL這兩個線程都是YES說明成功了 <6>歸納總結:
以上操作如果不同步原因有很多,首先有可能因為修改設定檔忘記重啟服務而沒有組建記錄檔,導致同步不成功。還有一種原因是主庫已經有資料,而從庫上沒有這些資料,這樣的話即使配置沒有出錯同步也會失敗,最好的辦法就是利用mysqldump匯出主庫中的資料儲存到一個.sql檔案內,然後在拷貝這些資料到從庫上,這些做完之後在做同步就行了。如果要做主主結構只需要反過來配置一遍即可。如果要做主主從這樣的結構的話需要在中繼的那個節點的設定檔中加入 log-slave-updates=on這麼一句話。舉個例子,三個節點分別為master1:1.1.1.1。 master2:1.1.1.2 。 slave:1.1.1.3。 master1和master2互為主主結構,master2還是slave的主,那麼這個新加的配置log-slave-updates=on就要在master2上配置。
mysql主主同步指定庫的指定表(version 5.1~5.7)