CentOS 7 mysql-5.6.39主從資料庫讀取分離
一,環境準備
兩個mysql資料庫均是在Linux CentOS7 系統下
mysql的資料庫版本號必須相同均為 mysql-5.6.39
主伺服器IP地址:192.168.1.112
從伺服器IP地址:192.168.1.114
二,資料庫主從同步優點
讀取分離,主資料庫操作,從資料庫讀取。
資料備份,減少伺服器壓力,防止服務崩潰。
三,主從資料庫配置詳情
主機部分:
編輯my.cnf配置檔案
$ vim /etc/my.cnf
在[mysqld]裡面新增以下內容
#主機標示,整數 ,建議用IP末位
server-id = 112
#確保此檔案可寫,開啟bin-log
log_bin = mysql-bin
#主機,讀寫都可以
read-only =0
#需要備份資料,多個寫多行
binlog-do-db =tlcss
#忽略無需備份的資料庫
binlog-ignore-db = mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
修改完之後重啟mysqld服務
$ service mysqld restart
登入mysqld服務
$ mysql -uroot -p
給從伺服器設定連線許可權
Mysql>$ grant replication slave,reload,super on *.* to [email protected]
檢視File和position的值,需作記錄
從機部分:
編輯my.cnf配置檔案
$ vim /etc/my.cnf
在其[mysqld]下新增從伺服器端的配置:
#從機標識,整數
server_id = 114
#確保此檔案可寫,開啟bin-log
log_bin = mysql-bin
#從機,只讀
read_only = 1
relay_log = mysql-relay-bin
#需要備份資料,多個寫多行
binlog-do-db = tlcss
#忽略無需備份的資料庫
binlog-ignore-db = mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schemal
#需要備份到具體指定表,多行寫多個
replicate-do-table = tlcss.tb_user_info
replicate-do-table = tlcss.tb_trade
儲存並重啟mysqld服務
$ service mysqld restart
測試是否可以正常連線上主機資料庫(預設3306不用指定,若修改了埠,需指定)
$ mysql -uroot -p -h192.168.1.112 -P3316
若能登陸主機資料庫,退出mysql命令列
Mysql>$ exit;
登陸從機mysqld服務
$ mysql -uroot -p
修改從機資料庫對主機資料庫的連線引數
這裡的master_log_file和master_log_pos是主機中File和position的值
Mysql>$ change master to master_host='192.168.1.112',master_user='root',master_password='root',
master_port=3316,master_log_file='mysql-bin.000005',master_log_pos=347;
若執行上面命令時報出如下錯誤
關閉正在執行的slave執行緒
Mysql>$ stop slave;
再次執行上面步驟裡面的mysql命令
啟動slave執行緒
Mysql>$ start slave;
檢視是否已經主從資料庫達成同步
Mysql>show slave status\G (此命令不加分號)
Slave IO Running : yes
Slave SQL Running : yes
這兩個結果代表主從資料庫已經同步