目次
MySQL 复制配置主从同步
MySQL 复制配置双机互为主从

MySQL5.5主从同步配置及问题

Jun 07, 2016 pm 04:39 PM
同期する インストール 構成 質問

安装网上的一些文章配置MySQL的主从同步机制,无奈重启从MySQL时出现异常,说不认识参数master_host /usr/sbin/mysqld: unknown variable master_host=10.0.2.160 原来我使用的是MySQL5.5,而大部分配置是基于5.5之前的版本的,Mysql版本从5.1.7以后开始就不

安装网上的一些文章配置MySQL的主从同步机制,无奈重启从MySQL时出现异常,说不认识参数master_host

/usr/sbin/mysqld: unknown variable ‘master_host=10.0.2.160′

原来我使用的是MySQL5.5,而大部分配置是基于5.5之前的版本的,Mysql版本从5.1.7以后开始就不支持“master-host”类似的参数。详情可以查看http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html

MySQL 复制配置主从同步

A B 为两台 MySQL 服务器,均开启二进制日志,数据库版本 MySQL 5.5。

在两台服务器上编辑配置文件,以下配置添加到[mysqld]

一.MySQL数据库迁移
首先如果要同步已经存在的MySQL数据,我们最好先通过全量同步到从库。
同步的方法可以参考:
1.
2.MySQL下的数据库迁移
二.服务器配置

[A 主服务器10.0.2.160]

server-id = 1
binlog-ignore-db = mysql
binlog-ignore-db =?information_schema
sync-binlog = 1
ログイン後にコピー

[B 从服务器10.0.2.151]

server-id = 2
replicate-ignore-db = mysql
replicate-ignore-db =?information_schema
ログイン後にコピー

重新启动MySQL服务。

使用命令?SHOW MASTER STATUS查看主服务状态:

mysql> SHOW MASTER STATUS;
+---------------------+----------+--------------+--------------------------+
| File                | Position | Binlog_Do_DB | Binlog_Ignore_DB         |
+---------------------+----------+--------------+--------------------------+
| mysql-binlog.000001 | 525      |              | mysql,information_schema |
+---------------------+----------+--------------+--------------------------+
1 row in set (0.00 sec)
ログイン後にコピー

主服务器A授权同步账户:

GRANT REPLICATION SLAVE ON *.* TO 'root'@'10.0.2.151' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
ログイン後にコピー

slave?start开启复制:

CHANGE MASTER TO MASTER_HOST='10.0.2.160',MASTER_USER='root', MASTER_PASSWORD='password',MASTER_LOG_FILE='?mysql-binlog.000001',MASTER_LOG_POS=106;
ログイン後にコピー

停止slave同步:mysql>slave?start

停止slave同步:mysql> slave stop

在slave服务器上使用show slave status查看slave同步的状态

mysql主从同步

mysql主从同步

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

如果上面为yes表示同步成功。

很不幸的是我第一次实验,上述参数都为No

解决:MySQL主从同步位置不一致
1.首先停掉Slave服务:

mysql> slave stop
ログイン後にコピー

2.到主服务器上查看主机状态:
记录File和Position对应的值。

mysql> SHOW MASTER STATUS;
+---------------------+----------+--------------+--------------------------+
| File                | Position | Binlog_Do_DB | Binlog_Ignore_DB         |
+---------------------+----------+--------------+--------------------------+
| mysql-binlog.000002 |      958 |              | mysql,information_schema |
+---------------------+----------+--------------+--------------------------+
1 row in set (0.00 sec)
ログイン後にコピー

3.到slave服务器上执行手动同步:

CHANGE MASTER TO MASTER_HOST='10.0.2.160',MASTER_USER='root', MASTER_PASSWORD='password',MASTER_LOG_FILE='?mysql-binlog.000002',MASTER_LOG_POS=958;
ログイン後にコピー

启动slave同步:slave start

再次查看slave状态发现:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
ログイン後にコピー

如果上面为yes表示同步成功。

我们知道,因为DATA REPLICATION机制完全是基于在主上执行的增量SQL要被传播到辅服务器上,并且被成功运行。这就势必要求:在运行此机制前,主辅数据库中数据是一致的;以及在运行此机制中,辅数据库禁止来自其他的SQL(非主上传播过来SQL)的写操作。但是在运行中仍然可能遇到不一致的产生,这会导致通信无法正常继续下去。因此一旦主从出现问题,首先应该解决同步位置的问题,修复丢失的数据。

MySQL 复制配置双机互为主从

在两台服务器上编辑配置文件,以下配置添加到[mysqld]

一、服务器参数

[A 服务器 192.168.1.100]

server-id = 1
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
sync-binlog = 1
ログイン後にコピー

[B 服务器 192.168.1.101]

server-id = 2
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
sync-binlog = 1
ログイン後にコピー

二、操作步骤

# A B 服务器停止同步

STOP SLAVE;
ログイン後にコピー

# A B 服务器清空MASTER日志

RESET MASTER;
ログイン後にコピー

# A B 服务器清空SLAVE日志

RESET SLAVE;
ログイン後にコピー

# A 服务器授权同步账户 (我们会同步一次复制数据库文件,所以授权为192.168.1%)

GRANT REPLICATION SLAVE ON *.* TO 'master_slave'@'192.168.1%' IDENTIFIED BY 'master_slave123!@#';
FLUSH PRIVILEGES;
ログイン後にコピー

# A 服务器锁表(锁表状态下不能终止mysql进程,否则会失败)

FLUSH TABLES WITH READ LOCK;
ログイン後にコピー
ログイン後にコピー

# 如果使用SSH,需要重新开启,复制数据库文件。

tar -cvf /tmp/mysql-data.tar /www/mysql
tar -xvf /tmp/mysql-data.tar -C /
ログイン後にコピー

# 查看 A 服务器主机状态(记录二进制开始文件,位置)

SHOW MASTER STATUS;
ログイン後にコピー
ログイン後にコピー

# B 服务器锁表(锁表状态下不能终止mysql进程,否则会失败)

FLUSH TABLES WITH READ LOCK;
ログイン後にコピー
ログイン後にコピー

# 修改 B 服务器配置 (修改为A服务器的主机状态)

CHANGE MASTER TO MASTER_HOST='192.168.1.100',MASTER_USER='master_slave', MASTER_PASSWORD='master_slave123!@#',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=106;
ログイン後にコピー

# 开启 B 服务器同步进程

START SLAVE;
ログイン後にコピー
ログイン後にコピー

# 查看 B 服务器同步状态是否正常

SHOW SLAVE STATUS;
ログイン後にコピー

# 查看 B 服务器主机(记录二进制开始文件,位置)

SHOW MASTER STATUS;
ログイン後にコピー
ログイン後にコピー

# 修改 A 服务器配置 (修改为B服务器的主机状态)

CHANGE MASTER TO MASTER_HOST='192.168.1.101',MASTER_USER='master_slave',MASTER_PASSWORD='master_slave123!@#',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=106;
ログイン後にコピー

# 开启 A 服务器同步进程

START SLAVE;
ログイン後にコピー
ログイン後にコピー

# 分别查看 A B 服务器同步状态,确定是否成功

SHOW SLAVE STATUS;SHOW MASTER STATUS;
ログイン後にコピー

# 解锁 A B 服务器

UNLOCK TABLES;
ログイン後にコピー

# 数据测试分别在 A B 服务器上创建表插入数据测试

DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`value` varchar(100) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `test` VALUES ('1', 'Hello');
ログイン後にコピー

注意:
1. 数据库目录下的master.info的内容会覆盖命令行或my.cnf中指定的部分选项,更改配置需删除master.info

2. my.cnf中的master配置在MySQL 6.0以后会取消,官方建议使用动态的CHANGE MASTER

3. 如果只指定ignore-db而不指定do-db。则新创建数据库的操作也会同步。

互为同步配置实例:

1. A B 互为主从同步test, 不同步mysql:

两个数据库配置中均设置:binlog-do-db=test, binlog-ignore-db=mysql,replicate-do-db=test,replicate-ignore-db=mysql

2. A B 互为主从只同步test,不同步其他数据库,新创建的也不会同步

两个数据库配置中均设置:binlog-do-db=test,replicate-do-db=test

3. A B 互为主从不同步mysql, 同步其他数据库,譬如创建的新数据库也会同步

两个数据库配置中均设置:binlog-ignore-db=mysql,replicate-ignore-db=mysql

4. A B 互为主从同步所有数据库,包括新建的数据库

两个数据库配置中均不设置上述四项。

参考:
官网:http://dev.mysql.com/doc/refman/5.5/en/replication-howto-mysqldump.html
5.17之前的版本配置:http://www.drupal001.com/2012/03/mysql-master-slave-troubles/
MySQL 复制配置双机互为主从:http://www.ncq8.com/2010/10/250.html

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Win11システムに中国語言語パックをインストールできない問題の解決策 Win11システムに中国語言語パックをインストールできない問題の解決策 Mar 09, 2024 am 09:48 AM

Win11 システムに中国語言語パックをインストールできない問題の解決策 Windows 11 システムの発売に伴い、多くのユーザーは新しい機能やインターフェイスを体験するためにオペレーティング システムをアップグレードし始めました。ただし、一部のユーザーは、アップグレード後に中国語の言語パックをインストールできず、エクスペリエンスに問題が発生したことに気づきました。この記事では、Win11 システムに中国語言語パックをインストールできない理由について説明し、ユーザーがこの問題を解決するのに役立ついくつかの解決策を提供します。原因分析 まず、Win11 システムの機能不全を分析しましょう。

VirtualBox にゲスト追加機能をインストールできない VirtualBox にゲスト追加機能をインストールできない Mar 10, 2024 am 09:34 AM

OracleVirtualBox の仮想マシンにゲスト追加をインストールできない場合があります。 [デバイス] > [InstallGuestAdditionsCDImage] をクリックすると、以下に示すようなエラーがスローされます。 VirtualBox - エラー: 仮想ディスク C: プログラミング ファイルOracleVirtualBoxVBoxGuestAdditions.iso を ubuntu マシンに挿入できません この投稿では、次の場合に何が起こるかを理解します。 VirtualBox にゲスト追加機能をインストールできません。 VirtualBox にゲスト追加機能をインストールできない Virtua にインストールできない場合

同期したフォルダー内の 1 つ以上のアイテムが Outlook エラーと一致しません 同期したフォルダー内の 1 つ以上のアイテムが Outlook エラーと一致しません Mar 18, 2024 am 09:46 AM

同期フォルダー内の 1 つ以上のアイテムが Outlook のエラー メッセージと一致しない場合は、会議アイテムを更新またはキャンセルしたことが原因である可能性があります。この場合、ローカル バージョンのデータがリモート コピーと競合していることを示すエラー メッセージが表示されます。この状況は通常、Outlook デスクトップ アプリケーションで発生します。同期したフォルダー内の 1 つ以上のアイテムが一致しません。競合を解決するには、プロジェクトを開いて操作を再試行します。同期フォルダー内の 1 つ以上のアイテムが Outlook エラーと一致しない問題を修正する Outlook デスクトップ バージョンでは、ローカルの予定表アイテムがサーバー コピーと競合すると問題が発生する可能性があります。ただし幸いなことに、それを助ける簡単な方法がいくつかあります

Baidu Netdisk は正常にダウンロードされたものの、インストールできない場合はどうすればよいですか? Baidu Netdisk は正常にダウンロードされたものの、インストールできない場合はどうすればよいですか? Mar 13, 2024 pm 10:22 PM

Baidu Netdisk のインストール ファイルを正常にダウンロードしたにもかかわらず、正常にインストールできない場合は、ソフトウェア ファイルの整合性にエラーがあるか、残っているファイルとレジストリ エントリに問題がある可能性があります。 Baidu Netdisk はダウンロードできましたが、インストールできない問題の分析を紹介します。 Baidu Netdisk は正常にダウンロードされたがインストールできない問題の分析 1. インストール ファイルの整合性を確認します。ダウンロードしたインストール ファイルが完全で、破損していないことを確認します。再度ダウンロードするか、別の信頼できるソースからインストール ファイルをダウンロードしてみてください。 2. ウイルス対策ソフトウェアとファイアウォールをオフにする: ウイルス対策ソフトウェアやファイアウォール プログラムによっては、インストール プログラムが正常に実行されない場合があります。ウイルス対策ソフトウェアとファイアウォールを無効にするか終了してから、インストールを再実行してください。

Android アプリを Linux にインストールするにはどうすればよいですか? Android アプリを Linux にインストールするにはどうすればよいですか? Mar 19, 2024 am 11:15 AM

Linux への Android アプリケーションのインストールは、多くのユーザーにとって常に懸念事項であり、特に Android アプリケーションを使用したい Linux ユーザーにとって、Android アプリケーションを Linux システムにインストールする方法をマスターすることは非常に重要です。 Linux 上で Android アプリケーションを直接実行するのは Android プラットフォームほど簡単ではありませんが、エミュレータやサードパーティのツールを使用すれば、Linux 上で Android アプリケーションを快適に楽しむことができます。ここでは、Linux システムに Android アプリケーションをインストールする方法を紹介します。

Linux Bashrc の機能、構成、使用法を理解する Linux Bashrc の機能、構成、使用法を理解する Mar 20, 2024 pm 03:30 PM

Linux Bashrc について: 機能、構成、および使用法 Linux システムでは、Bashrc (BourneAgainShellrunco​​mmands) は非常に重要な構成ファイルであり、システムの起動時に自動的に実行されるさまざまなコマンドと設定が含まれています。 Bashrc ファイルは通常、ユーザーのホーム ディレクトリにある隠しファイルであり、その機能はユーザーの Bashshell 環境をカスタマイズすることです。 1. Bashrc関数の設定環境

Ubuntu 24.04 に Podman をインストールする方法 Ubuntu 24.04 に Podman をインストールする方法 Mar 22, 2024 am 11:26 AM

Docker を使用したことがある場合は、デーモン、コンテナー、およびそれらの機能を理解する必要があります。デーモンは、コンテナがシステムですでに使用されているときにバックグラウンドで実行されるサービスです。 Podman は、Docker などのデーモンに依存せずにコンテナーを管理および作成するための無料の管理ツールです。したがって、長期的なバックエンド サービスを必要とせずにコンテナーを管理できるという利点があります。さらに、Podman を使用するにはルートレベルの権限は必要ありません。このガイドでは、Ubuntu24 に Podman をインストールする方法について詳しく説明します。システムを更新するには、まずシステムを更新し、Ubuntu24 のターミナル シェルを開く必要があります。インストールプロセスとアップグレードプロセスの両方で、コマンドラインを使用する必要があります。シンプルな

Ubuntu 24.04 に Ubuntu Notes アプリをインストールして実行する方法 Ubuntu 24.04 に Ubuntu Notes アプリをインストールして実行する方法 Mar 22, 2024 pm 04:40 PM

高校で勉強しているときに、同じクラスの他の生徒よりも多くのメモを取る、非常に明確で正確なメモを取る生徒もいます。メモをとることが趣味である人もいますが、重要なことについての小さな情報をすぐに忘れてしまうため、メモをとることが必需品である人もいます。 Microsoft の NTFS アプリケーションは、通常の講義以外にも重要なメモを保存したい学生にとって特に役立ちます。この記事では、Ubuntu24へのUbuntuアプリケーションのインストールについて説明します。 Ubuntu システムの更新 Ubuntu インストーラーをインストールする前に、Ubuntu24 では、新しく構成されたシステムが更新されていることを確認する必要があります。 Ubuntu システムでは最も有名な「a」を使用できます

See all articles