主從伺服器利用MySQL的二進制日志檔案,實作資料同步。二進制日志由主伺服器産生,從伺服器響應擷取同步資料庫。
環境配置:
作業系統:CentOS-7 64位
基于VM虛拟機安裝
網絡模式:橋接
master資料庫IP:172.16.110.37
slave資料庫IP:172.16.110.39
mysql版本:5.7.20
master:主伺服器 作為寫資料庫
slave:從伺服器 作為讀資料庫
操作步驟:
前置操作:安裝mysql等相關流程 詳見mysql安裝
克隆虛拟機中的作業系統
1、 向master伺服器添加新使用者test
添加了test使用者密碼為password
賦予權限:REPLICATION SLAVE
CREATE USER 'test'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'test'@'%';
2、 修改master配置
linux下mysql配置檔案在 /etc/my.cnf
如果找不到可以使用查找一下
修改内容如下:
server-id=37 //該id可以随便寫,我使用的ip末段為id
binlog-do-db=world //僅同步該資料庫
log-bin=mysql-bin //打開日志(主機需要打開),這個mysql-bin也可以自定義,這裡也可以加上路徑,如:/home/www/mysql_bin_log/mysql-bin
重新開機mysql服務:service mysqld restart
執行show mastr status 記住 file名稱和position值
mysql-bin.000002 154
3、切到slave伺服器
配置檔案添加如下内容
server-id=39
binlog-do-db = mydb //指定mysql的binlog日志記錄哪個db
log-bin=mysql-bin
執行
CHANGE MASTER TO
MASTER_HOST='172.16.110.37',
MASTER_USER='test',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=154;
執行:START slave;坑看下面
檢視slave狀态:show slave status\G
如果你遇到slave_io_running為no
那麼不是你的網絡不通
就是權限沒設定好,
我裝了三次,都是因為權限和網絡引起的
這裡有個坑,因為是克隆的 uuid此時是相同的可能引起複制開啟失敗
我們删掉這個auto.cnf 檔案,重新開機mysql即可生成新的
[[email protected] bin]# cat /var/lib/mysql/auto.cnf
[auto]
server-uuid=df715735-c9aa-11e7-a58b-000c29a4990d
auto具體位置如不一緻可以查找一下
沒啥大問題了