1. 程式人生 > 實用技巧 >mysql實現讀寫分離、主從複製的配置方法

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,說明所有配置已成功。