Windows下實現MySql主從複製

啓動及關閉mysql的命令。注:此命令是在cmd窗口執行

MySql啓動停止命令

net start mysql 

net stop  mysql


修改Mysql.user表中的root用戶的host權限爲%,否則無法使用root用戶遠程連接

wKiom1kydmXjNkJWAABPVRBWRpo729.jpg

登入MySql執行:

SHOW VARIABLES LIKE '%datadir%'; 查看my.ini路徑

wKiom1kyI8mhe9MIAAAZHOB-ESw153.jpg

找到配置文件my.ini,加入如下代碼

[mysqld]

server-id = 1   

binlog-do-db=test         #要同步的數據庫

#binlog-ignore-db=mysql   #不同步的數據庫,如果指定了binlog-do-db這裏應該可以不用指定的

log-bin=mysql-bin         #要生成的二進制日記文件名稱

expire_logs_days = 10     #二進制日誌文件刪除的天數

max_binlog_size=100M      #二進制日誌文件最大的大小

#bind_address=192.168.1.188   指定訪問地址

character-set-server=utf8    #僅適用5.5以上版本

保存更改的配置文件



然後執行下面sql語句查詢是否修改成功

SHOW VARIABLES LIKE '%log_bin%'; 查詢是否生效 

wKioL1kyUkSidXP9AAA56pjcZXE645.jpg

log_bin 的值爲on說明修改成功


show variables like 'server_id';

如果server_id'不存在執行,創建  SET GLOBAL server_id=1;


接下來在master(主庫)上建立一個備份賬戶,這裏創建的賬戶爲repl %表示任意地址的repl用戶均可登入master。

GRANT REPLICATION SLAVE ON *.* TO 'repl '@'%' IDENTIFIED BY 'Abcd@1234';


 從庫機器上連接主庫命令  mysql -h IP地址 -uroot -p ;

GRANT ALL PRIVILEGES ON *.* TO 'repl'@'%'  測試從庫連接主庫,如無法連接,進行授權解決


重啓服務器,查詢master主機信息

show master status;  記錄這裏的信息,接下來配置從庫是會使用

wKioL1kyUjSw2SoTAAAfIkdelhI231.jpg


二、從庫配置

將主庫中data要複製的庫複製到從庫的data中,保持數據一直,這裏我們使用的是test

然後編輯從數據庫的my.ini文件

[mysqld] 

server-id = 2

log-bin = mysql-bin

replicate-do-db=test

character-set-server=utf8    #僅適用5.5以上版本

ps:查看配置文件是否已存在server-id   如果有,需要註釋掉

show variables like 'server_id'; 

如果server_id'不存在執行,創建  SET GLOBAL server_id=2;


停止slave 服務

stop slave;


設置從庫連接時登錄主數據庫的賬號和密碼等信息,然後啓動slave  (ps:這最好重新查看一下master狀態,以防信息發生改變 show master status; 

CHANGE MASTER TO MASTER_HOST = '192.168.1.188' ,MASTER_USER = 'repl' 

    ,MASTER_PASSWORD ='Abcd@1234' 

    ,MASTER_LOG_FILE ='binlog.000008' 

    ,MASTER_LOG_POS =154;

MASTER_HOST     表示實現複製的主服務器IP地址 

MASTER_USER     表示實現複製的登入遠程主服務器的用戶

MASTER_PASSWORD 表示實現複製的登入遠程主服務器的用戶密碼

這裏的master_log_file和master_log_pos對應剛纔show master status記下的參數。

MASTER_LOG_FILE 表示實現複製的binlog日誌文件 

MASTER_LOG_POS  表示實現複製的binlog日誌文件的偏移量


開啓slave

start slave;

show slave status;

查看這兩項是否爲YES,yes爲正常。

Slave_IO_Running: Yes  或 Connecting to master 

Slave_SQL_Running: Yes


正常說明配置成功,接下來進行測試

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)

-- 從庫

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)

同理,可以搭建第二、第三個從節點。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章