Mysql 5.6 双主配置 自动同步脚本_MySQL
bitsCN.com
# 最近有项目应用到了 mysql 双主结构,现在贴出来共享
# mysql 版本: 5.6.11
# 操作系统版本: rhel 6.2
# Master 的 my.cnf 配置( 只贴M/M 结构部分)
log-bin=fabianserver-id=1binlog-do-db=TSCbinlog-do-db=adbbinlog-ignore-db=mysqlreplicate-do-db=TSCreplicate-do-db=adbreplicate-ignore-db=mysqllog-slave-updatesslave-skip-errors=allauto_increment_increment=2auto_increment_offset=1
# Slave 的my.cnf 配置(只贴M/M结构部分)
log-bin=fabianserver-id=2binlog-do-db=TSCbinlog-do-db=adbbinlog-ignore-db=mysqlreplicate-do-db=TSCreplicate-do-db=adbreplicate-ignore-db=mysqllog-slave-updatesslave-skip-errors=allauto_increment_increment=2auto_increment_offset=2
对上面参数作出部分解释:
log-bin=fabian #M/S 需开启log-bin 日记文件server-id=1 #指定server-id 必须不一致,M/s 结构时 M > Sbinlog-do-db=TSC #同步数据库名称binlog-ignore-db=mysql #忽略数据名称replicate-do-db=TSC #用于控制slave来执行同步的行为replicate-ignore-db=mysql #用于控制slave来执行同步的行为log-slave-updates #把更新的记录写到二进制文件中slave-skip-errors=all #跳过错误,继续执行复制auto_increment_increment=2 #设置主键单次增量auto_increment_offset=1 #设置单次增量中主键的偏移量#expire_logs_days = 20 #设置log-bin 超过多少天删除max-binlog-size= 512M# auto_increment_increment、auto_increment_offset 可以防止双主主键冲突问题
对开启权限、grant 这些基本的这里就不在详细说明,面贴出自动建立同步的gant 脚本,项目在生产过程中总会遇到Mysql 数据库服务器宕机等情况,可用以下脚本来重新构建Master -to-Master 环境。
#!/bin/bash # Setting Variables _REMOTEHOST=192.168.1.51 #远程主机IP _LOCALHOST=192.168.1.52 #本地主机IP _USER=root #用户名 _REMOTEPASD=123456 #远程主机密码 _LOCALPASD=123456 #本地主机密码 _BASE=TSC _LF=`mysql -u root -h $_REMOTEHOST -p$_REMOTEPASD -e "show master status/G;" | awk '/File/ {print $2}'` _LLF=`mysql -u root -p$_LOCALPASD -e "show master status/G;" | awk '/File/ {print $2}'` _PS=`mysql -u root -h $_REMOTEHOST -p$_REMOTEPASD -e "show master status/G;" | awk '/Position/ {print $2}'` _LPS=`mysql -u root -p$_LOCALPASD -e "show master status/G;" | awk '/Position/ {print $2}'`# Backup Mysql mysqldump -u root -h $_REMOTEHOST -p$_REMOTEPASD $_BASE > $_BASE.sqlmysql -u root -p$_LOCALPASD $_BASE < $_BASE.sqlrm -rf $_BASE.sqlmysql -uroot -p$_LOCALPASD -e "stop slave;"mysql -h $_REMOTEHOST -uroot -p$_LOCALPASD -e "stop slave;"echo "mysql -uroot -p$_LOCALPASD -e +change master to master_REMOTEHOST=*${_REMOTEHOST}*,master_user=*${_USER}*,master_password=*${_REMOTEPASD}*,master_log_file=*${_LF}*,master_log_pos=${_PS};+" > tmpecho "mysql -h $_REMOTEHOST -uroot -p$_LOCALPASD -e +change master to master_REMOTEHOST=*${_LOCALHOST}*,master_user=*${_USER}*,master_password=*${_LOCALPASD}*,master_log_file=*${_LLF}*,master_log_pos=${_LPS};+" > tmp2 sed -ri 's//+/"/g' tmp sed -ri 's//+/"/g' tmp2 sed -ri "s//*//'/g" tmp sed -ri "s//*//'/g" tmp2 sh tmp sh tmp2 rm -rf tmp rm -rf tmp2mysql -uroot -p$_LOCALPASD -e "start slave;"mysql -h $_REMOTEHOST -uroot -p$_LOCALPASD -e "start slave;"mysql -uroot -p$_LOCALPASD -e "show slave status/G;" | awk '$0 ~/Host/ || $0 ~/State/'mysql -h $_REMOTEHOST -uroot -p$_LOCALPASD -e "show slave status/G;" | awk '$0 ~/Host/ || $0 ~/State/'
#脚本执行完成后出现下图则表示成功:
[root@ORA2 fabian]# sh gant.sh Warning: Using a password on the command line interface can be insecure.Warning: Using a password on the command line interface can be insecure.Warning: Using a password on the command line interface can be insecure.Warning: Using a password on the command line interface can be insecure.Warning: Using a password on the command line interface can be insecure.Warning: Using a password on the command line interface can be insecure.Warning: Using a password on the command line interface can be insecure.Warning: Using a password on the command line interface can be insecure.Warning: Using a password on the command line interface can be insecure.Warning: Using a password on the command line interface can be insecure.Warning: Using a password on the command line interface can be insecure.Warning: Using a password on the command line interface can be insecure. Slave_IO_State: Queueing master event to the relay log Master_Host: 192.168.1.51 Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update itWarning: Using a password on the command line interface can be insecure. Slave_IO_State: Queueing master event to the relay log Master_Host: 192.168.1.52 Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it[root@ORA2 fabian]#
# 测试 master-to-master 是否成功要用 命令行界面或都三方工具(如 Navicat Premium) 进行对同步数据库进行测试,看是否在另一库进行同步操作。
至此完成!
bitsCN.com

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Artikel wird die Optimierung von MySQL -Speicherverbrauch in Docker untersucht. Es werden Überwachungstechniken (Docker -Statistiken, Leistungsschema, externe Tools) und Konfigurationsstrategien erörtert. Dazu gehören Docker -Speichergrenzen, Tausch und CGroups neben

Dieser Artikel befasst sich mit MySQLs Fehler "Die freigegebene Bibliotheksfehler". Das Problem ergibt sich aus der Unfähigkeit von MySQL, die erforderlichen gemeinsam genutzten Bibliotheken (.SO/.dll -Dateien) zu finden. Lösungen beinhalten die Überprüfung der Bibliotheksinstallation über das Paket des Systems m

In dem Artikel werden mithilfe der Änderungstabelle von MySQL Tabellen, einschließlich Hinzufügen/Löschen von Spalten, Umbenennung von Tabellen/Spalten und Ändern der Spaltendatentypen, erläutert.

Dieser Artikel vergleicht die Installation von MySQL unter Linux direkt mit Podman -Containern mit/ohne phpmyadmin. Es beschreibt Installationsschritte für jede Methode und betont die Vorteile von Podman in Isolation, Portabilität und Reproduzierbarkeit, aber auch

Dieser Artikel bietet einen umfassenden Überblick über SQLite, eine in sich geschlossene, serverlose relationale Datenbank. Es beschreibt die Vorteile von SQLite (Einfachheit, Portabilität, Benutzerfreundlichkeit) und Nachteile (Parallelitätsbeschränkungen, Skalierbarkeitsprobleme). C

In diesem Handbuch wird die Installation und Verwaltung mehrerer MySQL -Versionen auf macOS mithilfe von Homebrew nachgewiesen. Es betont die Verwendung von Homebrew, um Installationen zu isolieren und Konflikte zu vermeiden. Der Artikel Details Installation, Starten/Stoppen von Diensten und Best PRA

In Artikel werden die Konfiguration der SSL/TLS -Verschlüsselung für MySQL, einschließlich der Erzeugung und Überprüfung von Zertifikaten, erläutert. Das Hauptproblem ist die Verwendung der Sicherheitsauswirkungen von selbstsignierten Zertifikaten. [Charakterzahl: 159]

In Artikel werden beliebte MySQL -GUI -Tools wie MySQL Workbench und PhpMyAdmin beschrieben, die ihre Funktionen und ihre Eignung für Anfänger und fortgeschrittene Benutzer vergleichen. [159 Charaktere]
