MySQL主從複製

數據庫主從複製搭建

Start slave stop slave reset slave

搭建環境:game73306,3307

datadir:/usr/local/mysql/data/3306/   /usr/local/mysql/data/3307/

my.cnf/usr/local/mysql/data/3306/my.cnf  /usr/local/mysql/data/3307/myc.nf

這次搭建的環境都是新建立的,所以不用考慮數據拷貝複製這個環節

 

主庫------my3306

從庫------my3307

實驗步驟:

主庫上的操作:

1)在my3306上建立一個複製用戶:

my3306>grant replication slave,replication client on *.* to repl@'localhost' identified by'123456';   

2)my3306my.cnf中添加如下內容:

     

3)通過mysqladmin -P3306 shutdown關閉my3306服務,然後重啓服務

4)查看上面的設置是否生效:

           

           

從庫上的操作:

1)my3307my.cnf中添加如下內容:

server-id = 131202

binlog_format=mixed

log-slave-updates

log-bin = /usr/local/mysql/log/3307/mysql-bin

relay_log = /usr/local/mysql/log/3307/relay-bin

read-only

2)關閉my3307服務,重啓my3307服務

mysqladmin  --port=3307 shutdown

mysqld_multi start 3307

3)在my3307上執行

4)查看my3307的狀態

5)my3307start slave,再查看my3307的狀態

此時,slave上的兩個線程就已經啓動了

在主庫my3306上查看:

在從庫my3307上查看

 

測試:

在主庫my3306上的test數據庫添加一個zheng:

我們在從庫my3307上查看test數據庫

至此,我們的主從搭建就成功了。

注意:在新建用戶repl@localhost。然後再從庫my3307應用slave時,通過:

 change master to master_host='localhost', master_user='repl', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=0; 

結果在啓動從庫的時候會發現:

 Last_IO_Error: error connecting to master 'repl@localhost:3306' - retry-time: 60  retries: 86400

這個錯誤。原因可能是通信方式有問題,找不到socket文件去通信。然後換成以下方法就可以了:

在主庫my3306上,新建一個用戶[email protected]

然後再從庫上應用:change master to master_host='10.16.131.201', master_user='repl', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=0; 

這樣主從之間的通信方式就換成了tcp/ip通行。這樣之前的問題也就解決了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章