溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

windows上mysql如何進行主從數據庫搭建及問題是什么

發(fā)布時間:2021-11-16 11:23:44 來源:億速云 閱讀:159 作者:柒染 欄目:MySQL數據庫

今天就跟大家聊聊有關windows上mysql如何進行主從數據庫搭建及問題是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

根據前篇web項目的搭建后,需要搭建主從數據庫,這里在windows服務器上搭建了主從結構的mysql,這里在記錄下在本機模擬搭建過程
在windows上安裝和linux還是有些不同,不注意就會耽誤不少時間
一 下載安裝包和安裝
https://dev.mysql.com/downloads/file/?id=469273 下載的安裝包是Archive
需要手工安裝且建立服務和初始化data目錄,具體可以在網上搜索有很多具體安裝方法。
二 建立從節(jié)點
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文件啟動
三 主節(jié)點配置
1修改主節(jié)點和從節(jié)點上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上創(chuàng)建用戶并授權
create user 'repla'@'127.0.0.1' identified by 'test';
GRANT REPLICATION SLAVE ON *.* TO 'repla'@'127.0.0.1';
3創(chuàng)建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         |                  |
    |
+------------------+----------+--------------+------------------+--------------


四從節(jié)點配置
1啟動從節(jié)點mysql服務
mysql -uroot -P3307 -p123456 如果端口不同,必須制定端口,才能在一臺機器上同時啟動多實例

2 接收主節(jié)點傳送日志
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,系統(tǒng)都會根據注冊表里的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后多次執(zhí)行change master to命令。

看完上述內容,你們對windows上mysql如何進行主從數據庫搭建及問題是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI