程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 簡單說一說MySQL Replication環境搭建

簡單說一說MySQL Replication環境搭建

編輯:MySQL綜合教程

本文我們主要介紹MySQL Replication環境搭建的過程,以實現數據庫負載均衡。MySQL Replication環境搭建的具體過程如下:

環境:兩台ubuntu,一台做Master,一台Slave。

Master: ubuntub(192.168.1.101)

Slave: ubuntuc(192.168.1.104)

Master上的配置如下:

  1. ubuntub@ubuntub:/etc/mysql$ sudo vi my.cnf  
  2.  
  3.  #bind-address = 127.0.0.1  //注釋掉  
  4.  
  5. server-id               = 1  // 給master設置為1,給slave設置為2  
  6.  
  7. log_bin                 = /var/log/mysql/mysql-bin.log  
  8.  
  9. ubuntub@ubuntub:/etc/mysql$ sudo /etc/init.d/mysql restart  
  10.  
  11. ubuntub@ubuntub:/etc/mysql$ mysql -uroot -p  
  12.  
  13. mysql> GRANT REPLICATION SLAVE ON *.* TO 'rep_user'@'%' IDENTIFIED BY 'rep_password';  
  14.  
  15. mysql> FLUSH TABLES WITH READ LOCK;  
  16.  
  17. Query OK, 0 rows affected (0.00 sec)  
  18.  
  19. mysql> SHOW MASTER STATUS;  
  20.  
  21. +------------------+----------+--------------+------------------+  
  22.  
  23. | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |  
  24.  
  25. +------------------+----------+--------------+------------------+  
  26.  
  27. | mysql-bin.000001 |      261 |               
  28.  
  29. |                  |  
  30.  
  31. +------------------+----------+--------------+------------------+  
  32.  
  33. 1 row in set (0.02 sec)  
  34.  
  35. mysql> use rep;  
  36.  
  37. mysql> select * from user;  
  38.  
  39. +-------+----+  
  40.  
  41. | name  | id |  
  42.  
  43. +-------+----+  
  44.  
  45. | B     |  1 |  
  46.  
  47. | user3 |  2 |  
  48.  
  49. +-------+----+  
  50.  
  51. 2 rows in set (0.00 sec)  
  52.  
  53. ubuntub@ubuntub:/data/mysql_bak$ mysqldump -uroot -p rep > dbdump.sql  
  54.  
  55. ubuntub@ubuntub:/data/mysql_bak$ mysql -u root -p  
  56.  
  57. mysql> UNLOCK TABLES;  
  58.  
  59. ubuntub@ubuntub:/data/mysql_bak$ scp /data/mysql_bak/dbdump.sql [email protected]:/data/      //把備份數據倒倒slave上 

在Slave上的配置:

  1. ubuntuc@ubuntuc:/data$ sudo vi /etc/mysql/my.cnf  
  2.  
  3. #bind-address           = 127.0.0.1  
  4.  
  5. server-id               = 2 
  6.  
  7. log_bin                 = /var/log/mysql/mysql-bin.log  
  8.  
  9. ubuntuc@ubuntuc:/etc/mysql$ sudo /etc/init.d/mysql restart  
  10.  
  11. ubuntuc@ubuntuc:/data$ mysql -u root -p  
  12.  
  13. mysql> use rep;  
  14.  
  15. mysql> source /data/dbdump.sql   //把數據導入  
  16.  
  17. mysql> CHANGE MASTER TO                            //Change Master  
  18.  
  19.     -> MASTER_HOST='192.168.1.101',  
  20.  
  21.     -> MASTER_USER='rep_user',  
  22.  
  23.     -> MASTER_PASSWORD='rep_password',  
  24.  
  25.     -> MASTER_LOG_FILE='mysql-bin.000001',  
  26.  
  27.     -> MASTER_LOG_POS=261;  
  28.  
  29. mysql> START SLAVE;  
  30.  
  31. mysql> show master status;  
  32.  
  33. +------------------+----------+--------------+------------------+  
  34.  
  35. | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |  
  36.  
  37. +------------------+----------+--------------+------------------+  
  38.  
  39. | mysql-bin.000002 |      746 |                
  40.  
  41. |                  |  
  42.  
  43. +------------------+----------+--------------+------------------+  
  44.  
  45. mysql> show slave status;  //查看一下沒有錯誤,比如server-id有沖突的話,可能會導致一些錯誤。 

測試:

1)在Master上創建一個數據庫,然後在Slave上查看,show databases; 應該是可以看到;

2) Master上對rep數據庫的user表進行操作,結果立即復制倒slave上;

關於MySQL Replication環境搭建的知識就介紹到這裡,如果您想了解更多關於MySQL數據庫的知識,可以看一下這裡的文章:http://database.51cto.com/mysql/,相信一定會帶給您收獲的!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved