1. 程式人生 > >windows 7下mysql5.5.18主從同步設定

windows 7下mysql5.5.18主從同步設定

最近一直在研究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 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 *.* [email protected] 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;讓我很是鬱悶,一直沒找到原因,錯誤程式碼如下,   後來找到了,其實原因很簡單,當我測試連線主資料庫之後我沒有退出來,造成接下來的所有步驟都是對主資料庫的操作;

其實主主同步也是相同的配置,只是相互為主機和從機的設定;