公司使用微軟的服務器實在是操蛋,每次微軟服務器一更新,就把數據回到一個還原點,數據丟了幾次,實在不能忍,就把自己的電腦去同步數據,去備份數據。
主從服務器前提條件mysql版本要一致,或者是同一個大版本下的小版本,不然可能二進制日誌文件存儲的方式不同,導致失敗。
查看mysql 版本的命令:select version();
修改主服務器master: my.cnf
在[mysqld]這段後面添加下面兩行代碼:
log-bin=mysql-bin //[必須]啓用二進制日誌
server-id=222 //[必須]服務器唯一ID,默認是1,一般取IP最後一段
重啓mysql 服務器:
通過命令:show master status;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000001 | 1285 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec);
出現上面的結果,配置文件修改成功了。
在Master MySQL上創建一個用戶‘slave’,並允許其他Slave服務器可以通過遠程訪問Master,通過該用戶讀取二進制日誌,實現數據同步。
mysql>create user slave; //創建新用戶 2 //repl用戶必須具有REPLICATION SLAVE權限,除此之外沒有必要添加不必要的權限,密碼爲mysql。說明一下192.168.0.%,這個配置是指明repl用戶所在服務器,這裏%是通配符,表示192.168.0.0-192.168.0.255的Server都可以以repl用戶登陸主服務器。當然你也可以指定固定Ip。 3 mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.0.%' IDENTIFIED BY 'mysql';
3、配置Slave從服務器(windows)
(1)找到MySQL安裝文件夾修改my.ini文件,在[mysqld]下面增加下面幾行代碼
[mysqld]
server-id=2234
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
重啓MySQL服務
出現了Empty set <0.02 sec>,其實是配置文件沒有修改成功。這一步在執行start slave.的時候失敗。
在從服務器上執行下面的命令
change master to master_host='192.168.1.104', //Master 服務器Ip
master_user='slave',
master_password='mysql',
master_log_file='master-bin.000001',//Master服務器產生的日誌
master_log_pos=0;
(3)啓動Slave
start slave;
,
新建一個數據庫,新建一個表插入數據看看。ok了