Mysql雙活方案


#### 說明
Mysql主主互備即為兩個mysql的互為備份機
 
##### Windows下安裝步驟(Linux下步驟類似,基本就是裝上mysql,然后修改配置來完成主從的設置)
- step1、下載mysql的zip包(目前測試版本為5.7.28不帶debug的包)並解壓兩次,文件夾改名為master和slave,要安裝兩台機器或者一台機器用不同的端口裝兩個實例
- step2、在mster和slave文件夾下新建數據庫配置文件my.ini(linux則直接在安裝完成后修改my.conf配置文件),配置說明見文末,具體特殊參數設置請自行查詢調整設置。
- step3、以管理員身份運行cmd,並cd到master和slave下的bin目錄下(windows下切盤只需輸入"盤符:"即可)
- step4、都執行安裝前初始化命令完成初始化操作 mysqld --initialize --user=mysql --console 執行完成可以看到輸出中生成了一個零時密碼root@localhost:后端的一串字符,記錄下來
- step5、執行服務安裝命令 mysqld --install 服務名稱(master和slave) --defaults-file="my.ini的全路徑" 可看到提示服務安裝完成
- step6、啟動服務 net start master|slave(剛剛定義的服務名稱)
- step7、登錄mysql mysql -uroot -p [-P] [-h]密碼為安裝時生成的零時密碼,登錄完成后修改mysql密碼,set password=password("密碼")
- step8、登錄數據庫后執行show master status;記住File和Position的值
- step9、登錄從庫(兩台互為從庫),設置各自的主庫 change master to master_host='主庫的IP',master_port=主庫的端口,master_user='登錄主庫用戶名',master_password='登錄主庫的密碼',master_log_file='主庫中的File值',master_log_pos=主庫中的Position值;
- step10、啟動slave 從庫中執行start slave; 可以新建庫和表來測試是否已經自動完成同步
 
##### 備注
參考文檔:https://www.cnblogs.com/yeya/p/11878009.html?utm_source=gold_browser_extension
 
***
#### master1
```
[client]
# 端口號,默認是3306,同一機器下不同的mysql實例端口號不能相同,不同機器可以直接不寫即使用3306是端口
port=3307
default-character-set=utf8
[mysqld]
#主庫配置(主庫配置和備份配置主主時都需要配置,主備時對應配置一項即可)
server_id=1 ###主備的server_id需不同
log_bin=master-bin ###主主備份時必填,slave通過此文件進行同步
log_bin-index=master-bin.index
####master寫入二進制配置
###binlog-do-db=test 指定需要寫入二進制文件的庫
binlog-ignore-db=mysql,information_schema,performance_schema ###指定不寫入二進制文件中進行同步的庫
auto-increment-increment=2 ###id自增步長
auto-increment-offset=1 ###id自增起始ID
####備份配置
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin ###必填,備份時根據的二進制
log-slave-updates=ON ### 主主時需設置為ON
####slave同步配置
###replicate-do-db=test 指定需要同步的庫
replicate-ignore-db=mysql,information_schema,performance_schema ### 備份過濾不同步的庫
# 設置為自己MYSQL的安裝目錄
basedir=E:/software/mysql/master
# 設置為MYSQL的數據目錄,data文件夾由mysql自動生成
datadir=E:/software/mysql/master/data
port=3307
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER ###sql查詢時的參數,也可安裝后重新設置
# 開啟查詢緩存
explicit_defaults_for_timestamp=true
```
***
#### master2
```
[client]
# 端口號,默認是3306,同一個環境下不同的mysql實例端口號不能相同
port=3308
default-character-set=utf8
[mysqld]
#主庫配置
server_id=2
log_bin=master-bin
log_bin-index=master-bin.index
####master寫入二進制配置
###binlog-do-db=test 指定需要寫入二進制文件的庫
binlog-ignore-db=mysql,information_schema,performance_schema
auto-increment-increment=2
auto-increment-offset=2
####slave同步配置
###replicate-do-db=test 指定需要同步的庫
replicate-ignore-db=mysql,information_schema,performance_schema
###從庫配置
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
log-slave-updates=ON
# 設置為自己MYSQL的安裝目錄
basedir=E:/software/mysql/slave
# 設置為MYSQL的數據目錄,data文件夾由mysql自動生成
datadir=E:/software/mysql/slave/data
port=3308
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
# 開啟查詢緩存
explicit_defaults_for_timestamp=true
```
#### windows下雙活方案
- 場景:兩台WindowsServer上分別安裝了兩個mysql數據庫(主主互備)
- 說明:在其中一台機器上安裝mysql-router,配置destinations(mysql server列表)為兩台WindowsServer主機,模式為read-write,即可做到訪問mysql-router主機路由到兩個mysql上,原則上訪問的為第一台mysql,當第一台掛掉可自動切換到第二台上,從而實現雙活
- 安裝說明:
- step1:當在兩台數據庫服務器上安裝時直接下載windows版本(https://cdn.mysql.com//Downloads/MySQL-Router/mysql-router-8.0.18-winx64.zip),解壓到指定安裝目錄(建議在非C盤下)
- step2:拷貝文末內容(mysqlrouter.conf)到解壓目錄下,生成配置文件mysqlrouter.conf,根據實際情況調整配置具體路徑和數據庫服務器的IP及端口
- step3:將mysql-router的bin目錄加到系統環境變量或者cmd下切換到mysql-router的bin目錄下,然后執行命令“mysqlrouter -c mysqlrouter.conf文件的路徑”,即可啟動mysql-router
- step4:應用服務(configmap.yaml)的mysql配置只需配置為mysql-router的所在機器的IP及設定的端口即可
- 備注說明:mysql-router的具體安裝地址建議直接安裝在應用服務器上,可以保證數據庫服務器中任意一台掛掉不影響服務
```shell mysqlrouter.conf
[DEFAULT]
# 日志路徑
logging_folder=E:\software\mysql-router\log
# 插件路徑
plugin_folder=E:\software\mysql-router\lib
# 配置路徑
config_folder=E:\software\mysql-router
# 運行時狀態路徑
#runtime_folder=E:\software\mysql-router\run
# 數據文件路徑
data_folder=E:\software\mysql-router\data
[logger]
# 日志級別
level=INFO
# 以下選項可用於路由標識的策略部分
[routing:test]
# Router地址
bind_address=0.0.0.0:3309
# Router端口
#bind_port=3309
# 讀寫模式
mode=read-write
# 目標服務器
destinations=127.0.0.1:3307,127.0.0.1:3308
``` 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM