mysql實現讀寫分離、主從複製的配置方法
1. 測試環境
master:192.168.1.109
slave:192.168.1.118
2. 配置主伺服器
2.1修改 /etc/my.cnf 配置檔案,增加如下內容:
# 指定唯一的server ID,master和slave的server-id不能一樣
# 如不配置,在start slave後可能會報“ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO”的錯誤。
server-id = 1
# 表示啟用binlog功能,並指定二進位制日誌的儲存目錄
log-bin=mysql-bin
2.2
mysql -uroot -p
create database dbtest; # 建立要被同步的資料庫
create user 'slave'@'192.168.1.118' identified by 'slavepsw'; # 新增一個slave使用者
GRANT REPLICATION SLAVE ON *.* TO'slave'@'192.168.1.118'; # 為slave指定replication許可權
show master status;
2.3 與2.2作用相同
# 每個slave使用標準的mysql使用者和密碼連結master。進行復制操作的使用者會收於REPLICATION SLAVE許可權。
mysql> GRANTREPLICATION SLAVE, REPLICATION CLIENT ON *.* TO'slave'@'192.168.1.118' IDENTIFIED BY 'slavepsw' ;
#REPLICATION SLAVE 常用於建立複製時所需要用到的使用者許可權,也就是說slave server必須被master server授權具有該許可權的使用者,才能通過該使用者複製
#REPLICATION CLIENT 不可用與建立複製,有該許可權時,只是多了可以使用“SHOW SLAVE STATUS”、“SHOW MASTER STATUS”等命令
3. 配置從伺服器
3.1修改 /etc/my.cnf 配置檔案,增加如下內容:
server-id = 2
log-bin=mysql-bin
3.2
mysql -uroot -p
create databases dbtest; # 建立要被同步的資料庫
stop slave;
change master to master_host = '192.168.1.109',
master_port = 3306,
master_user = 'slave',
master_password = 'slavepsw',
master_log_file = 'mysql-bing.000002',
master_log_pos = 592; # 配置主資料庫引數
start slave; #啟動資料庫複製功能;
如果Slave_IO_Running: Yes,Slave_SQL_Running: Yes,說明所有配置已成功。