windows 2003系統下mysql主從同步備份步驟
A:主伺服器
IP地址:192.168.1.124
B:從伺服器
IP地址:192.168.1.125
前提:設定同步之前請把保持兩個資料庫的資料一樣!
對A伺服器的配置進行修改,開啟mysql/my.ini檔案,在[mysqld]下面添加如下內容:
| 代碼如下 |
複製代碼 |
server-id=1 log-bin=E:mailmysqldata
|
server-id:為主伺服器A的ID值
log-bin:二進位變更日值
重啟A伺服器
對B伺服器的配置進行修改,開啟mysql/my.ini檔案,在[mysqld]下面添加如下內容:
| 代碼如下 |
複製代碼 |
[mysqld] server-id=2 master-host=192.168.1.124 master-user=root master-password=d5qj0y4stk master-port=3306 #主伺服器連接埠 master-connect-retry=60 #同步時間間隔為60秒 |
//以下內容為可選
#需要同步的資料庫
| 代碼如下 |
複製代碼 |
replicate-do-db=mail
|
#不需要同步的資料庫,忽略掉
| 代碼如下 |
複製代碼 |
binlog-ignore-db=mysql
|
重啟伺服器!!
| 代碼如下 |
複製代碼 |
show slave statusG;
|
實驗終於成功,經最後測試添加刪除修改資料都可以同步了!
windows 7下mysql主從同步設定
環境:windows 7 ,mysql-5.5.18-win32.msi
主伺服器地址:192.168.1.192
從資料庫地址:192.168.1.193
流程:
1:在mysql下找到my.ini檔案,在其[mysqld] 下添加主伺服器端配置:
| 代碼如下 |
複製代碼 |
server-id=1 #伺服器 id log-bin=C:Program FilesMySQLMySQL Server 5.5mysql-bin #二進位檔案存放路徑 binlog-do-db=test1 #待同步的資料庫 binlog-ignore-db=information_schema #忽略不同步的資料庫,這個可以不用寫 binlog-ignore-db=mysql #忽略不同步的資料庫,這個可以不用寫 binlog-ignore-db=test #忽略不同步的資料庫,這個可以不用寫 |
2:儲存my.ini檔案,重啟資料庫,然後會在C:Program FilesMySQLMySQL Server 5.5 下看到mysql-bin.index 檔案和mysql-bin.000001檔案;
3:通過cmd進入mysql:
| 代碼如下 |
複製代碼 |
| cd C:Program FilesMySQLMySQL Server 5.5bin |
輸入使用者名稱和密碼: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 FilesMySQLMySQL Server 5.5bin |
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 statusG (沒有分號),查看
| 代碼如下 |
複製代碼 |
Slave_IO_Running: Yes Slave_SQL_Running: Yes |
7:完畢,在這個過程中我的測試結果一直是Slave_IO_Running:No;讓我很是鬱悶,一直沒找到原因,錯誤碼如下,
後來找到了,其實原因很簡單,當我測試連接主要資料庫之後我沒有退出來,造成接下來的所有步驟都是對主要資料庫的操作