1. 程式人生 > >Windows下多個Mysql實例配置主從

Windows下多個Mysql實例配置主從

ims logs mys oca 文件 家裝 應該 存在 停止

序: 網上有很多類似的文章,也是各種百度出來的,但是對於多數剛開始接觸MYSQL主從的小白來說,網上文章的代碼裏面很多技術點都沒有理解,有跌打誤撞碰上的,但多數都是這篇文章卡主了,換篇文章接著卡。- -。 下面真正開始寫教程之前,我希望你能夠先完整的看完,再去敲代碼。 方法適用於MYSQL 5.1之後的版本。之前的版本,自行百度。Mysql的主從是個什麽德行我就不解釋了。不然你也不會搜不到這篇文章。
環境:w7 64位。 mysql 5.5.24...(也就是多數大家裝的wamp包裏面的版本)其實應該是要在 linux裏面去做這件事的,但是僅僅是為了了解,學習這個主從,大多數人還是windows下的平臺,So...不解釋。首先你要在你的windows下再裝一個mysql實例(不要妄想著一個Mysql實例,裏面弄兩個庫然後他們配置主從,這個我可沒玩過,有興趣的同學可以嘗試一下),意味著你要分配不同的端口。windows下安裝多個mysql的過程看下面這篇文章就好了。http://blog.csdn.net/zuxianghaung/article/details/7272557

這是用到的軟件包http://yunpan.cn/cySt9WkiiTDPa 提取碼 42e8(看我多麽良心,連軟件都給你準備好了,不用你去各大垃圾下載站去下載了。再次註意你的環境,保證跟我的一樣,以及數據庫版本)

OK。我就當你已經配置好了第二個mysql實例。

下面兩個bat 文件代碼,用來幫你快速啟動關閉你的新服務startmysql.bat
@ECHO OFF
net start mysql5.5
pause

stopmysql.bat
@ECHO OFF
net stop mysql5.5

pause

這個mysql5.5 是你第二個實例的服務名稱,stop停止服務,start 開啟服務,不解釋了。
別忘了進去你第二個Mysql實例瞅瞅。


進入正餐:因為我們是在一個windows下配置的,所以沒有網上那些主從 IP。 都是localhost主數據庫 my.ini添加如下
在[mysqld]下添加配置數據:server-id=1 #配一個唯一的ID編號,1至32。 手動設定
log-bin=mysql-bin #二進制文件存放路徑 ,不要在意為啥沒有路徑名,你就這樣寫
#設置要進行或不要進行主從復制的數據庫名,同時也要在Slave(也就是你的從庫) 上設定。binlog-do-db=進行主從數據庫名1 ,進行主從數據庫名2binlog-ignore-db=不參與主從的數據庫名,不參與主從的數據庫名2保存,重啟數據庫服務。

上面的這些配置的含義:

- server-id 顧名思義就是服務器標識id號了
- log-bin 指定日誌類型
- binlog-do-db 是你需要復制的數據庫名稱,如果有多個就用逗號“,”分開
- binlog-ignore-db 是不需要復制的數據庫名稱,如果有多個就用逗號“,”分開

在主庫中建立一個用戶(專門用給從庫連接的,註意這是在主庫裏面建立的,可別迷迷糊糊的到從庫的命令界面敲):
1.mysql>grant replication slave,reload,super on *.* to lisimin@localhost identified by ‘root‘ ;
2.mysql>flush privileges;
3.mysql>show master status; # 找到File 和 Position 的值記錄下來;
技術分享圖片

簡單解釋一下第一句。創建了一個用來復制的賬號。“@”前面的“lisimin”是用戶名,後面的是有效的域,這裏因為是本地,所以是寫的是Localhost,如果是其他地址,對應填寫上IP即可,不過應該不需要考慮端口問題,我創建的時候就沒寫端口。by 後面的“root”是密碼。賬戶密碼自己定義,不要跟root,以及你當前的用戶名沖突。。
2.flush....刷新權限。3.這個就是你的日誌值下面這篇文章是介紹創建用戶對應分配權限問題的,簡單了解一下就行。

http://blog.chinaunix.net/uid-20639775-id-3249105.html

從庫配置:從數據庫配置my.ini:[mysqld]server-id=2 #唯一#設置要進行或不要進行主從復制的數據庫名,同時也要在Master 上設定。replicate-do-db=進行主從數據庫名1 ,數據庫名2replicate-ignore-db=不進行數據庫名1 ,數據庫名2
多個數據庫之間用 , 分割。其實也可以這樣寫replicate-do-db=進行主從數據庫名1
replicate-do-db=進行主從數據庫名2
上面的那個寫法也是。
其實你只需要寫進行主從的庫名稱就可以了。對了。假如你的主庫叫 A 。那你的從庫 最好也叫A。叫別的也可以,不過一定要是存在的。
下面登陸你的從庫:mysql>change master to master_host=‘127.0.0.1‘,master_user=‘slave‘,master_password=‘slave‘, master_log_file=‘mysql-bin.000001‘,master_log_pos=107;
master_host= 這裏填你主庫的IP。master_user=‘lisimin‘ 剛才我們創建的那個用戶。master_user=‘root‘ ..不解釋。這就是我們剛才 在主庫裏面 show master status;得到的值了。自行根據實際情況填寫master_log_file=‘mysql-bin.000015master_log_pos=107
如果你的主庫還有是其他端口的話,master_port=端口號 master裏面常用的就這些參數了,其余的自行百度。常見的有,讓你先 stop slave 。。那你就先 mysql>stop slave 。再執行上面的代碼。其他的錯誤,容易出現在語法,標點符號上,然後 mysql>start slave ;mysql>show slave status\G;如果出現:Slave_IO_Runing:YesSlave_SQL_Running :yes那就說明成功了,如果出現錯誤,一般都是連接出問題。重新檢查一下你是否正確的輸入了剛才創建的用戶名和密碼。好了基本上就是這些問題了。
尊重原創,一些資料,也是從下面兩篇文章中參照的、http://blog.csdn.net/zhangking/article/details/5662545
http://blog.sina.com.cn/s/blog_6954c2c401017vvp.html


最後說點註意事項,從庫要先創建好,以及裏面的表結構,反正我是先創建好表結構的,如果你說以後涉及到添加,刪除字段問題,那就是以後的事了。
還有,如果你真正部署到服務器的話,一般是linux一定要寫好了定時刪除 日誌文件的腳本文件,這個估計是以後的事了。不然,日誌文件可是非常大的。定期做個備份啥的。
OK,這樣你就可以在你的主數據庫裏添加一條記錄試試,看看你的從庫有木有記錄。(別忘開從庫的服務啊、、)以及,可以把主庫裏面的表設計為 innodb。從庫設計為myisam。。來提高性能。
不啰嗦了。


Windows下多個Mysql實例配置主從