在本地創建兩個mysql服務,指定不一樣的端口。例:一個主(3308),一個從(3307)。mysql
1、配置Master
1.打開master目錄下的my.ini文件,在文件中添加以下內容:
server-id = 1
binlog-do-db = test
log-bin=master-bin
log-bin-index=master-bin.index
2.啓動master
命令行切換到master的bin目錄下,執行mysqld --console命令
3.在master上建立一個複製用戶
進入到mysql數據庫客戶端中
mysql> create user repl_user;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> grant replication slave on *.* to repl_user identified by 'psw';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
說明:replication slave這個權限沒有什麼特別之處,只是這個用戶能夠從master上取得二進制的日誌轉儲數據,徹底能夠給一個常規賬號賦予replication slave權限,可是最好仍是將replication slave權限和其餘用戶權限分開,這樣的話,若是後期想禁止某些slave的連接,只要刪除該用戶就能夠了
4.保持主從mysql的test數據庫初始狀態一致通常是先將全部的表加讀鎖,而後copy磁盤上的數據庫文件夾。我這裏直接中止服務,而後將數據文件拷貝過去。
5.在主數據庫裏面運行show master status;記下file和position字段對應的參數。
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107 | test | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)sql
2、配置slave
1.打開slave目錄下的my.ini文件,在文件中添加以下內容:
server-id = 2
replicate-do-db=test
log-bin = mysql-bin
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index
與master同樣,slave也要配置一個惟一的服務器id,relay-log和relay-log-index表示中繼日誌文件和中繼日誌索引文件
2.啓動slave
命令行切換到slave的bin目錄下,執行mysqld --console命令
3.將slave鏈接到master上
進入到mysql數據庫客戶端中
mysql>change master to master_host='127.0.0.1',master_port=3306,master_user='repl',master_password='asdf',master_log_file='mysql-bin.000001',master_log_pos=107;
Query OK, 0 rows affected (0.19 sec)
注:這裏的master_log_file和master_log_pos對應剛纔show master status記下的參數。
mysql>change master to master_host='localhost',master_port=3310,master_user='repl_user',master_password='111111';
Query OK, 0 rows affected, 2 warnings (0.45 sec)
mysql>
mysql> start slave;
Query OK, 0 rows affected (0.05 sec)
mysql>
4.開啓從數據庫複製功能slave start;
mysql> slave start;
Query OK, 0 rows affected (0.00 sec)
在從庫能夠經過show slave status來查看一些參數。數據庫
3、測試
在主庫建立表或插入數據服務器
-- 主庫
mysql> create table tianyc_02(b int);
Query OK, 0 rows affected (0.16 sec)
mysql> insert into tianyc_02 values(2013);
Query OK, 1 row affected (0.13 sec)ide
-- 從庫
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tianyc_01 |
| tianyc_02 |
+----------------+
2 rows in set (0.00 sec)
mysql> select * from tianyc_02;
+------+
| b |
+------+
| 2013 |
+------+
1 row in set (0.00 sec)
同理,能夠搭建第2、第三個從節點。測試