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

Windows下多個Mysql實例配置主從(轉)

local 定期 spa root lan 百度 data- ast 迷糊

https://www.cnblogs.com/jpfss/p/8143720.html 序: 網上有很多類似的文章,也是各種百度出來的,但是對於多數剛開始接觸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 ,進行主從數據庫名2 binlog-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 ,數據庫名2 replicate-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.000015‘ master_log_pos=107 如果你的主庫還有是其他端口的話, master_port=端口號 master裏面常用的就這些參數了,其余的自行百度。 常見的有,讓你先 stop slave 。。 那你就先 mysql>stop slave 。再執行上面的代碼。其他的錯誤,容易出現在語法,標點符號上, 然後 mysql>start slave ; mysql>show slave status\G; 如果出現: Slave_IO_Runing:Yes Slave_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實例配置主從(轉)