windows實現mysql讀寫分離
1、修改MySQL配置檔案my.ini
[mysqld]
log-bin=mysql-bin #開啟主從複製,主庫的配置
log-bin-index=mysql-bin.index
server-id=1 #指定主庫serverid,主庫的id要比從庫的id小
sync_binlog=1
binlog_format=mixed
binlog-do-db=test #指定同步的資料庫,如果不指定則同步全部資料庫
binlog-ignore-db=mysql #指定不同步的資料庫
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
配置完成後重啟MySQL服務。
2、授權給從伺服器(slave)同步資料的賬號密碼
GRANT REPLICATION SLAVE ON *.*TO 'zhanghao'@'192.168.174.131' IDENTIFIED BY '123456';
引數說明:
注意:授權給slave的賬號不能是root,root只可以本地登入,因此,我此處給出的是zhanghao;另外防火牆需要關閉,或者對外開放3306埠,否則後期會失敗
zhanghao:slave連線master使用的賬號
IDENTIFIED BY '123456' :slave連線master使用的密碼
192.168.174.130:slave IP
執行命令:show master status\G
這個命令不需要分號
注意結果中的File和Position,配置從伺服器(slave)時會用到。
二、從伺服器(slave)配置
注意:當program Files資料夾中的mysql資料夾裡找不到my.ini,只能找到my_default.ini時,可以去c盤的programData中找mysql,在它下面可以找到my.ini
1、修改MySQL配置檔案my.ini
[mysqld]
server-id=2
log-bin=mysql-bin
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
sync_master_info=1
sync_relay_log=1
sync_relay_log_info=1
2、設定連線主伺服器(master)的資訊
先執行關閉命令 : stop slave;
然後執行
change master to master_host='192.168.174.130',master_user='zhanghao',master_port=3306,master_password='123456',master_log_file='mysql-bin.000008',master_log_pos=170;
引數說明:
master_host:master IP
master_user:master資料庫通過GRANT授權的賬號
master_port:master資料庫使用的埠號
master_password:master資料庫通過GRANT授權的密碼
master_log_file:master資料庫中通過show master status/G顯示的File名稱
master_log_pos:master資料庫中通過show master status/G顯示的Position資料,注意不帶引號
重啟MySql服務。
執行命令:start slave;
執行命令:show slave status\G
當Slave_IO_Running與Slave_SQL_Running都為Yes時才算配置成功。
此時,master伺服器上test資料庫裡的資料就能同步到slave伺服器上的test資料庫中。