双方向データ同期のMySQL

すなわち、読み出しおよび書き込み動作が二つのサーバ、すなわち上で実行され、マスタからの各サーバです。いずれかのサーバが動作要求を受信したとき、前記は、対応するデータを変更し、別のサーバにコピー変更されたデータを。

初期サーバー

MySQLのツール、二つの新しいデータベース監査、IDMを介してサーバとの接続Ha001。データベースの初期化を完了するために、データベースの初期化ファイルをインポートします

許可されたユーザへ

、正しいパスワードを入力し、コマンドラインからのスタートメニューを開き、mysqlコマンドラインコンソールモードに入るのMySQL5、次のコマンドを入力します。

192.168.0.189のバックアップユーザーから#の認証は、すべてのデータライブラリをコピーする権限を持っている、ユーザーのパスワードは123456に設定されています

GRANTのレプリケーションスレーブON * * '123456 BY' IDENTIFIED 'backup'@'192.168.0.189' に。

#更新権限設定

FLUSH PRIVILEGES;

設定ファイルを変更します。

my.infディレクトリ内のマスターファイルを変更し、次のように次のmysqldに追加されました

サーバID = 1

ログインビン= mysqlのビン

ビンログ-DO-DB =監査

ビンログ-DO-DB = IDM

ビンログ-無視-DB = INFORMATION_SCHEMA

ビンログ-無視-DB = mysqlの

ビンログ-無視-DB =テスト

マスターホスト= 192.168.0.189

マスター・ユーザー=バックアップ

マスターパスワード= 123456

マスターポート= 3306

複製-DO-DB =監査

複製-DO-DB = IDM

マスター接続再試行= 60

初期サーバー

MySQLのツール、二つの新しいデータベース監査、IDMを介してサーバとの接続Ha002。データベースの初期化を完了するために、データベースの初期化ファイルをインポートします

許可されたユーザへ

、正しいパスワードを入力し、コマンドラインからのスタートメニューを開き、mysqlコマンドラインコンソールモードに入るのMySQL5、次のコマンドを入力します。

#はバックアップデータベース192.168.0.188のユーザーからのすべてのデータをコピーする権限を委任した、ユーザーのパスワードは123456に設定されています

GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.188' IDENTIFIED BY '123456';

#刷新权限设置

FLUSH PRIVILEGES ;

?

?修改配置文件

修改主目录中的my.inf文件,在mysqld下面加入如下内容

server-id=2

master-host=192.168.0.188

master-user=backup

master-password=123456

master-port=3306

replicate-do-db=audit

replicate-do-db=idm

master-connect-retry=60

?

log-bin=mysql-bin

binlog-do-db=audit

binlog-do-db=idm

binlog-ignore-db=information_schema

binlog-ignore-db=mysql

binlog-ignore-db=test

?

在两台服务器上,均完成如下操作:

从开始菜单中打开mysql5的命令行,输入正确的密码,进入mysql控制台命令行模式后,输入如下命令:

#开启从服务器

slave start;

?

在两台服务器上,均完成如下操作:

从开始菜单中打开mysql5的命令行,输入正确的密码,进入mysql控制台命令行模式后,输入如下命令:

#显示主服务器状态

Show master status;

#显示从服务器状态

Show slave status /G;

?查看连接配置状态:

Slave_IO_Running: Yes -----此项为No代表与主库连接有问题。

Slave_SQL_Running: Yes ----如果此项为NO代表配置有问题。

?查看对比pos点以及记录文件是否一致:

如果不一致,在从MySQL运行

#改变从服务器的pos点为98,记录文件为mysql-bin.000001

CHANGE MASTER TO Master_Log_File='mysql-bin.000001',Master_Log_Pos=98;

运行此命令前需要stop slave;之后再start slave;

?检查当在两台机器的任何一台mysql中修改数据时,另外的那台的数据是否也修改

?关闭其中一台mysql的服务后,更新另一台mysql的数据,再启动已停止的那台mysql服务器,查看数据是否修改

?请在任何时候都不要非法关机,否则将会造成同步数据的错乱。

?当出现了非法关机时,为不影响数据,请执行如下操作

在该非法关机的机器启动后,检查该机器,查看数据是否与一直正常运行的机器一致了。确认其数据一致后。进入一直正常运行的机器,从开始菜单中打开mysql5的命令行,输入正确的密码,进入mysql控制台命令行模式后,输入如下命令:

#关闭slave服务

Slave stop;

#开启slave服务

Slave start;

通过这步后,一切即恢复正常

?如果数据已经完全错乱,请先在两台机器上停止slave服务,然后将数据正常的服务器上的数据导入到不正常的服务器上,保证两边的服务器数据一致。然后到数据正常的服务器的mysql控制台下输入:

#显示主服务器状态

Show master status;

获取其状态后,根据这个状态到数据不正常服务器上,通过命令:

#改变从服务器的pos点为xx,记录文件为mysql-bin.0000xx

CHANGE MASTER TO Master_Log_File='mysql-bin.0000xx',Master_Log_Pos=xx;

修改其参数后,再通过

#开启从服务器

Start slave;

#显示从服务器状态,检查是否和主一致。

#检查Slave_IO_RunningSlave_SQL_Running状态是否正常

Show slave status /G;

确保一切正常后。再到数据不正常的服务器的mysql控制台下输入:

#显示主服务器状态

Show master status;

获取其状态后,根据这个状态到数据正常的服务器上,通过命令:

#改变从服务器的pos点为xx,记录文件为mysql-bin.0000xx

CHANGE MASTER TO Master_Log_File='mysql-bin.0000xx',Master_Log_Pos=xx;

修改其参数后,再通过

#开启从服务器

Start slave;

#显示从服务器状态,检查是否和主一致。

#检查Slave_IO_RunningSlave_SQL_Running状态是否正常

Show slave status /G;

确保也正常。最后在到两台服务器上修改数据,查看数据是否已经同步

?同步一旦配置好后,请不要修改服务器机器名

おすすめ

転載: www.cnblogs.com/shujutongbugongju/p/11021303.html