mysql主從複製配置(簡單,絕對能用)

折騰一天,只因爲網上講的少了要開啓mysql遠程鏈接權限(mysql默認禁止遠程鏈接,如navicat等軟件的連接)。
主從複製的作用是做冗餘備份,而且主從做讀寫分離的話 往往從庫會有好幾臺 分擔了壓力 並且可以直接做負載均衡。

實驗環境

  • 兩臺服務器做配置測試:虛擬機中的ubuntu(192.168.128.131)和宿主機xp(192.168.128.1)
  • 分別安裝有mysql。最好版本一樣(我的不一樣)
  • 機子都ping得通

主服務器配置(ubuntu)

配置mysql

#vi /etc/mysql/my.cnf
   [mysqld]
   log-bin=mysql-bin   #[必須]啓用二進制日誌
   server-id=1         #[必須]服務器唯一ID,默認是1,一般取IP最後一段

檢查mysql是否允許遠程連接

    bind-address = 0.0.0.0       #這樣表示允許所有網段連接

進入mysql終端

#mysql -uroot -proot

新建mysql用戶(從服務器用到此賬號配置)backup

mysql> GRANT REPLICATION backup ON *.* to 'backup'@'192.168.128.%' identified by 'backup';

刷新一下權限表

mysql> flush privileges;

重啓mysql

#service mysql restart

進入mysql終端查看master狀態

mysql> show master status;

主庫
記錄file 和 position的值,從服務器配置用到。這個時候不要去動主數據庫,會影響position的值。

從服務器配置(xp)

配置mysql的my.ini並重啓

   [mysqld]
   log-bin=mysql-bin   #[可選]啓用二進制日誌
   server-id=2         

登錄mysql終端後執行

mysql> change master to master_host='192.168.128.131',
master_user='backup',
master_password='backup',
master_log_file='mysql-bin.000002',
master_log_pos=612;

啓動slave從庫

mysql> start slave;

查看slave從庫

mysql> show slave status\G;

這裏寫圖片描述
Slave_IO_Running和Slave_SQL_Running必須都爲Yes纔算成功。

測試

ubuntu mysql

mysql> create database test_repl;

然後查看xp mysql如果出現test_repl庫則說明主從複製配置成功

mysql> show databases;

結尾

這只是最基本的配置,還有很多配置命令就不折騰了。測試時發現之前庫不一致時我在主庫裏面添加一張表,而從庫沒有那個庫,導致從庫slave會報錯,執行這個命令後重啓從庫就可以跳過這個錯誤。

#SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1        跳過一個事務
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章