天天看點

Linux下MySQL主從資料庫配置

主從伺服器利用MySQL的二進制日志檔案,實作資料同步。二進制日志由主伺服器産生,從伺服器響應擷取同步資料庫。

環境配置:

作業系統:CentOS-7 64位

基于VM虛拟機安裝

網絡模式:橋接

master資料庫IP:172.16.110.37

slave資料庫IP:172.16.110.39

mysql版本:5.7.20

master:主伺服器 作為寫資料庫

slave:從伺服器    作為讀資料庫

Linux下MySQL主從資料庫配置

操作步驟:

前置操作:安裝mysql等相關流程  詳見mysql安裝

  克隆虛拟機中的作業系統

Linux下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

如果找不到可以使用查找一下

修改内容如下:

Linux下MySQL主從資料庫配置
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

Linux下MySQL主從資料庫配置

3、切到slave伺服器

配置檔案添加如下内容

server-id=39
	binlog-do-db = mydb //指定mysql的binlog日志記錄哪個db
	log-bin=mysql-bin
           
Linux下MySQL主從資料庫配置

執行

  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

那麼不是你的網絡不通

就是權限沒設定好,

我裝了三次,都是因為權限和網絡引起的

Linux下MySQL主從資料庫配置

這裡有個坑,因為是克隆的 uuid此時是相同的可能引起複制開啟失敗

我們删掉這個auto.cnf 檔案,重新開機mysql即可生成新的

[[email protected] bin]#  cat /var/lib/mysql/auto.cnf 

[auto]

server-uuid=df715735-c9aa-11e7-a58b-000c29a4990d

auto具體位置如不一緻可以查找一下

沒啥大問題了

Linux下MySQL主從資料庫配置