1. 程式人生 > 其它 >win10上, MySQL 主從複製配置

win10上, MySQL 主從複製配置

技術標籤:資料庫(mysql | ORACLE)mysql資料庫主從複製配置win10

文章目錄

1、安裝從服務 MySQL

安裝從服務MySQL 的前提 是 win10 上 已經安裝了 MySQL5.7 。

1)複製 MySQL Server

路徑 :C:\Program Files\MySQL

操作:

1)複製 MySQL Server 5.7 目錄,並修改名稱為 MySQL Server 5.7-s

在這裡插入圖片描述

2)將 my-default.ini 配置檔案命名為 my.ini

在這裡插入圖片描述

要修改其內容有 端號號,basedir 路徑、datadir路徑。

[client]
port=3307

[mysql]
port=3307

[mysqld]
port=3307
basedir="C:/Program Files/MySQL/MySQL Server 5.7-s/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.7-s/Data"

sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

explicit_defaults_for_timestamp=true

在這裡插入圖片描述

2)複製 MySQL 資料配置檔案

路徑:C:\ProgramData\MySQL

操作: 複製 MySQL Server 5.7 目錄,並修改名字為 MySQL Server 5.7-s

在這裡插入圖片描述

要修改的內容有 端號號,basedir 路徑、datadir路徑。

[client]
port=3307

[mysql]
port=3307

[mysqld]
port=3307
basedir="C:/Program Files/MySQL/MySQL Server 5.7-s/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.7-s/Data"

secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.7-s/Uploads"

sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

3)刪除 auto.cnf 檔案

C:\ProgramData\MySQL\MySQL Server 5.7-s\Data 目錄下,找到 auto.cnf 檔案,將其刪除。

說明:

因為 auto.cnf 中配置的 server-uuid 的值必須唯一,否則 主從複製時 兩個server-uuid 相同的服務被認為是同一個服務,沒法複製。

auto.cnf 刪除後,MySQL啟動時會自動生成新的 auto.cnf 和 新的 server-uuid 值。

注意:不要修改 server-uuid 的值。

4)執行安裝命令

C:\Program Files\MySQL\MySQL Server 5.7-s\bin> 目錄,執行如下命令:

mysqld install mysql57-s --defaults-file="C:\Program Files\MySQL\MySQL Server 5.7-s\my.ini"

在這裡插入圖片描述

5)啟動 mysql57-s

在服務列表中,找到 mysql57-s ,右鍵啟動 服務。

在這裡插入圖片描述

2、主從服務的配置

1)主服務的配置

[mysqld]

#伺服器唯一ID,主從不能相同
server-id=1

# 主資料庫的二進位制日誌
log-bin=mysql-bin

#user_db 為資料庫名,user_db,如果備份多個數據庫,重複設定這個選項即可
binlog-do-db=user_db

# 設定不要複製的資料庫(可設定多個)
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

2)從服務的配置

[mysqld]

#從伺服器唯一ID
server-id=2

# 主資料庫的二進位制日誌
log-bin=mysql-bin  

#啟用中繼日誌
relay-log=mysql-relay

3)主、從服務重啟

3、主服務上,建立複製賬號和檢視位置點

主服務 上,建立複製專用賬號

grant replication slave on *.* to 'repl_user'@'%'  identified by  'repl_user123456';

flush privileges;

主服務 上,檢視檔名和位置點

show master status;

在這裡插入圖片描述

4、從服務上,設定主從資料同步

從服務 上,做以下操作。

change master to 
master_host='127.0.0.1'
,master_port=3306
,master_user='repl_user'
,master_password='repl_user123456'
,master_log_file='mysql-bin.000001'
,master_log_pos=154;

啟動主從複製:

start slave;

檢視執行情況:

show slave  status;

在這裡插入圖片描述

Slave_IO_RunningSlave_SQL_Running 全部是 Yes ,則說明配置成功。

5、測試