共計 3269 個字符,預計需要花費 9 分鐘才能閱讀完成。
今天就跟大家聊聊有關 windows 上 mysql 如何進行主從數據庫搭建及問題是什么,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
根據前篇 web 項目的搭建后,需要搭建主從數據庫,這里在 windows 服務器上搭建了主從結構的 mysql,這里在記錄下在本機模擬搭建過程
在 windows 上安裝和 linux 還是有些不同,不注意就會耽誤不少時間
一 下載安裝包和安裝
https://dev.mysql.com/downloads/file/?id=469273 下載的安裝包是 Archive
需要手工安裝且建立服務和初始化 data 目錄,具體可以在網上搜索有很多具體安裝方法。
二 建立從節點
1 把主服務器的安裝目錄 C:\Program Files\MySQL\MySQL Server 5.7 所有文件都 copy 到另一個目錄 D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7。
2 修改復制過來的 my.ini 文件參數
包括端口和路徑
port = 3307
basedir = D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7
datadir = D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\data
3 建立 mysql 從服務器服務
mysqld install MySQLM –defaults-file= D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini
4 修改對應注冊表里服務啟動項的內容
注冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQL57\ImagePath 里使用的路徑改成
D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\bin\mysqld –defaults-file=D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini MySQLS
mysqld_multi.pl –defaults-extra-file=D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini start 3307
以便啟動 mysql 時可以找到對應 my.ini 文件啟動
三 主節點配置
1 修改主節點和從節點上 my.ini
[mysqld]
server-id = 1
binlog-do-db=test #要同步的數據庫
#binlog-ignore-db=mysql #不同步的數據庫, 如果指定了 binlog-do-db 這里應該可以不用指定的
log-bin=mysql-bin #要生成的二進制日記文件名稱
修改從配置文件:
[mysqld]
server-id = 2
log-bin = mysql-bin
replicate-do-db=test
2 上創建用戶并授權
create user repla @ 127.0.0.1 identified by test
GRANT REPLICATION SLAVE ON *.* TO repla @ 127.0.0.1
3 創建 test 數據庫
4 物理備份 test 目錄到從庫
把 datadir 指定的目錄的 data 目錄 copy 到從目錄
5 show master status
查看 file 和 position 字段對應的參數;
+——————+———-+————–+——————+————–
—-+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid
Set |
+——————+———-+————–+——————+————–
—-+
| mysql-bin.000006 | 1847 | test | |
|
+——————+———-+————–+——————+————–
四從節點配置
1 啟動從節點 mysql 服務
mysql -uroot -P3307 -p123456 如果端口不同,必須制定端口,才能在一臺機器上同時啟動多實例
2 接收主節點傳送日志
change master to master_host= 127.0.0.1 ,master_port=3306,master_user= repla ,master_password= test ,master_log_file= mysql-bin.000006 ,master_log_pos=1847;
3 啟動從數據庫復制功能
start slave
最后在主庫插入數據后,從庫就能看到主庫的數據了。
問題總結
1 這里的 my.ini 文件在注冊表里有指定,無論是否使用命令指示使用自己命令的 ini,系統都會根據注冊表里的 my.ini 文件位置去讀取并啟動 db。
比如用命令 C:\Program Files\MySQL\MySQL Server 5.7\bin mysql –defaults-file= D:\anzhuang\MySQL\my.ini -uroot -p
想使用自己定義的 my.ini. 但注冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQL57\ImagePath 里使用的路徑不是
這個路徑時,還會按照注冊表的路徑讀取文件。
如果在 windows 上安裝,要正確識別 my.ini 位置,具體可根據服務選擇或注冊表信息判斷 my.ini 位置
2 備份時可采用物理備份和邏輯備份,如果是物理備份注意把主庫的 data 目錄下的全部文件復制到 slave
這個 data 目錄一定是 datadir 參數中指定的目錄,這點可能會采用軟件安裝目錄下的 data 目錄而不是數據目錄
3 采用物理備份時很可能把 auto.cnf 文件也復制到 slave,造成主備之間的 UUID 不一致,這里的解決辦法是在 slave
重新命名 auto.cnf,然后重啟備庫,重新生成新的 UUID
可以參考網址 http://www.linuxidc.com/Linux/2015-02/113564.htm
4 在 slave 上需要驗證主從是否開始傳送日志方法
mysql show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: repla
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000011
Read_Master_Log_Pos: 1684
Relay_Log_File: SDSC-WIN7-ZHANGLU-relay-bin.000002
Relay_Log_Pos: 1595
Relay_Master_Log_File: mysql-bin.000011
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
……
Slave_IO_Running: Yes Slave_SQL_Running: Yes 都是 Yes 就對了。
可能出現問題是要多次 stop slave 后多次執行 change master to 命令。
看完上述內容,你們對 windows 上 mysql 如何進行主從數據庫搭建及問題是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。