流程:
1:在mysql下找到my.ini文件,在其[mysqld] 下添加主服務器端配置:
server-id=1 #服務器 id log-bin=C:\Program Files\MySQL\MySQL Server 5.5\mysql-bin #二進制文件存放路徑binlog-do-db=test1 #待同步的數據庫binlog-ignore-db=information_schema #忽略不同步的數據庫,這個可以不用寫binlog-ignore-db=mysql #忽略不同步的數據庫,這個可以不用寫binlog-ignore-db=test #忽略不同步的數據庫,這個可以不用寫
2:保存my.ini文件,重啟數據庫,然后會在C:\Program Files\MySQL\MySQL Server 5.5 下看到mysql-bin.index 文件和mysql-bin.000001文件;
3:通過cmd進入mysql:cd C:\Program Files\MySQL\MySQL Server 5.5\bin
輸入用戶名和密碼:mysql -u用戶名 -p密碼 ( mysql -uroot -proot )
4:給要連接的從服務器設置權限:grant replication slave,reload,super on *.* toslave@192.168.1.193 identified by '123456'; ps: 給主機192.168.1.193添加權限,用戶名:slave,密碼:123456;(只需輸入一次就可以了)
5:輸入命令 show master status; # 找到File 和 Position 的值記錄下來;
其實,主服務器是不需要設置太多信息的,只需要第1條中的前三行就足夠了。
下面配置從服務器:
1:在mysql下找到my.ini文件,在其[mysqld] 下添加從服務器端配置:
server-id=2 #服務器 id ,不能和主服務器一致replicate-do-db=test1 #待同步的數據庫binlog-ignore-db=information_schema #忽略不同步的數據庫,這個可以不用寫binlog-ignore-db=mysql #忽略不同步的數據庫,這個可以不用寫binlog-ignore-db=mysql #忽略不同步的數據庫,這個可以不用寫binlog-ignore-db=test #忽略不同步的數據庫,這個可以不用寫
2:保存my.ini文件,重啟從數據庫,在mysql5.1以上版本中是不支持1中master設置的,如果添加了master設置,數據庫就無法重啟了;
3:通過cmd進入mysql:cd C:\Program Files\MySQL\MySQL Server 5.5\bin
4:從服務器上測試:mysql -u slave -p 123456 -h 192.168.1.192,查看能否連接主數據庫成功,如果成功,則一定要退出來,之前我就是一直犯了一個錯誤,按照網上的步驟測試完畢之后就沒有退出mysql,結果執行以下步驟時老是報錯,其原因是一直設置的是主數據庫;
5:修改對主數據庫的連接的參數:mysql>change master to master_host='192.168.1.193',master_user='slave2',master_password='1234562', master_log_file='mysql-bin.000001',master_log_pos=107; ps:可能會報一個錯誤,大概的意思是說slave線程正在運行,不能設置,這樣的話,執行mysql>stop slave; 停止slave線程,然后再設置連接的參數;
6:設置完之后,執行 mysql> start slave; 開啟slave線程;執行mysql> show slave status\G (沒有分號),查看
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
7:完畢,在這個過程中我的測試結果一直是Slave_IO_Running:No;錯誤代碼如下,
其實原因很簡單,測試連接主數據庫之后沒有退出來,造成接下來的所有步驟都是對主數據庫的操作;
其實主主同步也是相同的配置,只是相互為主機和從機的設置;