欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql主從及遇到的問(wèn)題解決

 更新時(shí)間:2025年01月04日 10:09:20   作者:與民更始  
本文詳細(xì)介紹了如何使用Docker配置MySQL主從復(fù)制,首先創(chuàng)建了兩個(gè)文件夾并分別配置了`my.cnf`文件,通過(guò)執(zhí)行腳本啟動(dòng)容器并配置好主從關(guān)系,文中還提到了一些常見問(wèn)題的解決方法,如配置路徑錯(cuò)誤導(dǎo)致的沖突和slave的change連接錯(cuò)誤

mysql主從及遇到問(wèn)題解決

1.基于mysql 8.0的docker

2.配置mysql的配置

  • 創(chuàng)建master文件夾,并創(chuàng)建my.cnf文件:
[mysqld]
## 設(shè)置server_id,注意要在同一局域網(wǎng)內(nèi)唯一
server-id=1
## 開啟binlog
log-bin=mysql-bin
## binlog格式(mixed、statement、row,默認(rèn)格式是statement)
binlog_format=mixed
  • 創(chuàng)建slaver文件夾,并創(chuàng)建my.cnf文件
[mysqld]
## 設(shè)置server_id,注意要唯一
server-id=2
## 可以開啟binlog,以備Slave作為其它Slave的Master時(shí)使用
#log-bin=mysql-bin
## relay_log配置中繼日志
relay_log=relay-bin
## 如果需要同步函數(shù)或者存儲(chǔ)過(guò)程
log_bin_trust_function_creators=true
## binlog格式(mixed、statement、row,默認(rèn)格式是statement)
binlog_format=mixed
## 跳過(guò)主從復(fù)制中遇到的所有錯(cuò)誤或指定類型的錯(cuò)誤,避免slave端復(fù)制中斷
## 如:1062錯(cuò)誤是指一些主鍵重復(fù),1032錯(cuò)誤是因?yàn)橹鲝臄?shù)據(jù)庫(kù)數(shù)據(jù)不一致
slave_skip_errors=1062   ## 跳過(guò)主從復(fù)制中遇到的錯(cuò)誤,可配可不配
read-only=1 #1只讀,0讀寫
  • 同級(jí)可以創(chuàng)建sh文件
#!/bin/sh
# $0獲取執(zhí)行命令的文件;realpath獲取真實(shí)的路徑;dirname獲取該文件的絕對(duì)路徑
script_dir=$(dirname "$(realpath "$0")")
docker run -itd --name doyen$1 -p ${2}:3306 -e MYSQL_ROOT_PASSWORD=123456 \
-v ${script_dir}/${1}/my.cnf:/etc/my.cnf \
-v ${script_dir}/${1}/data:/var/lib/mysql \
-v ${script_dir}/${1}/log:/var/log --restart always mysql:8.0
  • 分別執(zhí)行sh:
#啟用master容器,master文件名,3306端口
sh mysql.sh master 3306

#啟用slaver容器,slaver文件名,3307端口
sh mysql.sh master 3307
  • 登錄master容器
#進(jìn)入容器,如果失敗使用 sh
docker exec -it master bash
#登錄mysql
mysql -uroot -p123456
use mysql;
#可以移除root的所有地區(qū)登錄,只保留能本機(jī)登錄
drop user 'root'@'%';
#創(chuàng)建slaver用戶,使用明文密碼連接
create user 'slaver'@'%' identified with mysql_native_password by '123456';
grant replication SLAVE ON *.* TO 'slaver'@'%';
flush privileges;

#查看binlog的數(shù)據(jù),用于slaver的偏移量遷移
show master status;
  • 登錄slaver服容器
#master_log_file和master_log_pos 為master中show展示的數(shù)據(jù)
change master to master_host='master-ip',
                     master_port=3306,
					 master_user='slaver',
					 master_password='123456',
					 master_log_file='mysql-bin.000002',
					 master_log_pos=157;
start SLAVE;
show slave status\G;

主從mysql完成,Slave_IO_RunningSlave_SQL_Running 都為 Yes。

遇到的問(wèn)題說(shuō)明

一些博客提示mysql的配置位置不對(duì),導(dǎo)致路徑映射不對(duì),使用默認(rèn)的配置,引發(fā)serverId都是1,會(huì)主從沖突,位置為 /etc/my.cnf,修改配置后需要docker restart。

查詢文件:

docker exec -it container find / -name "my.cnf"

如果slave的change連接master寫錯(cuò)了,可以執(zhí)行stop slave;reset slave;再重新綁定。

這是重頭開始復(fù)制,如果master已經(jīng)運(yùn)行了一段時(shí)間

#master容器:全量dump,--source-data=2表示生成的備份文件中包含 CHANGE MASTER TO 語(yǔ)句
#--single-transaction: 保證備份在一致性點(diǎn)上完成
#--flush-logs: 在備份開始時(shí)刷新 MySQL 的二進(jìn)制日志
#--hex-blob: 處理二進(jìn)制字段時(shí)使用十六進(jìn)制表示

mysqldump -u root -p --all-databases --source-data=2 --single-transaction --flush-logs --hex-blob > /var/lib/mysql/full-backup.sql

#將master的該文件mv到slaver的映射路徑中,進(jìn)入slaver容器

mysql -u root -p < full-backup.sql

#執(zhí)行完后再配置binlog同步點(diǎn),從sql文件中找出偏移量

CHANGE MASTER TO 。。。

#-------------------------------二。數(shù)據(jù)太多,只dump表結(jié)構(gòu)-------
mysqldump -u root -p123456 --no-data --databases your_database > schema-only.sql
mysql -u root -p123456 < schema-only.sql

start slave;

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL數(shù)據(jù)庫(kù)查看日志操作指南

    MySQL數(shù)據(jù)庫(kù)查看日志操作指南

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)查看日志操作的相關(guān)資料,文中講了MySQL中的四種日志,分別是錯(cuò)誤日志、二進(jìn)制日志、查詢?nèi)罩竞吐樵內(nèi)罩?需要的朋友可以參考下
    2025-02-02
  • 安全快速修改Mysql數(shù)據(jù)庫(kù)名的5種方法

    安全快速修改Mysql數(shù)據(jù)庫(kù)名的5種方法

    mysql中如何重命名數(shù)據(jù)庫(kù)?這篇文章主要介紹了安全快速修改Mysql數(shù)據(jù)庫(kù)名的5種方法,需要的朋友可以參考下
    2014-04-04
  • SQL中日期與字符串互相轉(zhuǎn)換操作實(shí)例

    SQL中日期與字符串互相轉(zhuǎn)換操作實(shí)例

    我們經(jīng)常出于某種目的需要使用各種各樣的日期格式,當(dāng)然我們可以使用字符串操作來(lái)構(gòu)造各種日期格式,下面這篇文章主要給大家介紹了關(guān)于SQL中日期與字符串互相轉(zhuǎn)換操作的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • K8s 如何部署 MySQL 8.0.20 主從復(fù)制結(jié)構(gòu)

    K8s 如何部署 MySQL 8.0.20 主從復(fù)制結(jié)構(gòu)

    這篇文章主要介紹了K8s 如何部署 MySQL 8.0.20 主從復(fù)制結(jié)構(gòu),本次使用 OpenEBS 來(lái)作為存儲(chǔ)引擎,OpenEBS 是一個(gè)開源的、可擴(kuò)展的存儲(chǔ)平臺(tái),它提供了一種簡(jiǎn)單的方式來(lái)創(chuàng)建和管理持久化存儲(chǔ)卷,需要的朋友可以參考下
    2024-04-04
  • 查看本地MYSQL數(shù)據(jù)庫(kù)IP地址的三種方法

    查看本地MYSQL數(shù)據(jù)庫(kù)IP地址的三種方法

    本文介紹了多種方法來(lái)查看連接到本地MySQL服務(wù)器的IP地址,括使用SQL查詢從`information_schema.processlist`獲取IP地址,并通過(guò)`group by`進(jìn)行統(tǒng)計(jì),以及通過(guò)命令行工具如`mysql`和`awk`進(jìn)行過(guò)濾和計(jì)數(shù),這些方法有助于監(jiān)控和管理數(shù)據(jù)庫(kù)連接,需要的朋友可以參考下
    2024-10-10
  • MySQL分庫(kù)分表后路由策略設(shè)計(jì)詳情

    MySQL分庫(kù)分表后路由策略設(shè)計(jì)詳情

    這篇文章主要介紹了MySQL分庫(kù)分表后路由策略設(shè)計(jì)詳情,分庫(kù)分表后設(shè)計(jì)到的第一個(gè)問(wèn)題就是,如何選擇路由key,應(yīng)該如何對(duì)key進(jìn)行路由
    2022-08-08
  • Mysql+Navicat16長(zhǎng)期免費(fèi)直連數(shù)據(jù)庫(kù)安裝使用超詳細(xì)教程

    Mysql+Navicat16長(zhǎng)期免費(fèi)直連數(shù)據(jù)庫(kù)安裝使用超詳細(xì)教程

    這篇文章主要介紹了Mysql+Navicat16長(zhǎng)期免費(fèi)直連數(shù)據(jù)庫(kù)安裝教程,這里下載的是mysql8版本,第一個(gè)安裝包比較小, 第二個(gè)安裝包比較大, 因?yàn)榘{(diào)試工具,我這里下載的是第一個(gè),詳細(xì)介紹跟隨小編一起看看吧
    2023-11-11
  • MySQL中數(shù)據(jù)查詢語(yǔ)句整理大全

    MySQL中數(shù)據(jù)查詢語(yǔ)句整理大全

    查詢語(yǔ)句是以后在工作中使用最多也是最復(fù)雜的用法,如何精準(zhǔn)的查詢出想要的結(jié)果以及用最合理的邏輯去查詢尤為重要,下面這篇文章主要給大家介紹了關(guān)于MySQL中數(shù)據(jù)查詢語(yǔ)句的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 深入分析MySQL 的備份和恢復(fù)機(jī)制

    深入分析MySQL 的備份和恢復(fù)機(jī)制

    備份對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō)是相當(dāng)重要的工作。如果數(shù)據(jù)庫(kù)在使用過(guò)程中出現(xiàn)了問(wèn)題,比如系統(tǒng)崩潰、硬件故障或錯(cuò)誤的刪除了數(shù)據(jù)。這時(shí),如果我們進(jìn)行了數(shù)據(jù)備份,就能比較方便的使數(shù)據(jù)庫(kù)恢復(fù)工作,并使我們的數(shù)據(jù)損失到最小。下面我們來(lái)詳細(xì)探討下數(shù)據(jù)庫(kù)的備份與恢復(fù)。
    2016-11-11
  • MySQL查詢用戶權(quán)限的方法總結(jié)

    MySQL查詢用戶權(quán)限的方法總結(jié)

    這篇文章主要介紹了MySQL查詢用戶權(quán)限的方法總結(jié)內(nèi)容,需要的朋友們可以參考下。
    2020-03-03

最新評(píng)論