0

次のコマンドを使用して、2 つのデータベース (1 つはローカル、もう 1 つはリモート) を双方向に同期しようとしています。

pt-table-sync --print --bidirectional --conflict-column * 
--conflict-comparison newest --databases my_db 
h=localhost,u=root,p=my_pass, h=ip_remote_server

次のエラーが表示されます。

DBI connect(';host=Aplicaciones;mysql_read_default_group=client','',...) 
failed: Unknown MySQL server host 'Aplicaciones' (2) at 
/usr/bin/pt-table-sync line 2208

ここにあるように、データベースのユーザー名とパスワードは同じですか?

ドキュメントを正しく理解していません。

あなたが私を助けてくれることを願っています。ありがとう。

4

1 に答える 1

2

最後に私は成功しました。

1.-ユーザー名、パスワード、およびデータベースの名前は同じでなければなりません。

2.-別のサーバーにリモートで接続する許可をユーザーに与えます。このガイドに従うことができます。

3.-次のスクリプトを実行します。

サーバー ローカル:

GRANT SELECT, REPLICATION CLIENT, SHOW DATABASES, SUPER, PROCESS ON *.* TO 'your_user'@'localhost' IDENTIFIED BY 'your_password';

サーバーリモート:

GRANT SELECT, REPLICATION CLIENT, SHOW DATABASES, SUPER, PROCESS ON *.* TO 'your_user'@'your_real_ip_local' IDENTIFIED BY 'your_password';

4.-テストのケース: テーブル 'color'

サーバー ローカル:

+----------+--------+--------+---------+---------------------+
| id_color | name   | status | deleted | date_register       |
+----------+--------+--------+---------+---------------------+
|        1 | Negro  |      1 |       0 | 2012-01-26 00:35:19 |
|        2 | Blue   |      1 |       0 | 2012-01-26 00:35:19 |
|        3 | Gray   |      1 |       0 | 2012-01-26 00:35:19 |
|        4 | Silver |      1 |       0 | 2012-01-26 00:35:19 |
|        5 | Tan    |      1 |       0 | 2012-01-26 00:35:19 |
|        6 | White  |      1 |       0 | 2012-04-05 14:14:37 |
+----------+--------+--------+---------+---------------------+

サーバーリモート:

+----------+----------+--------+---------+---------------------+
| id_color | name     | status | deleted | date_register       |
+----------+----------+--------+---------+---------------------+
|        1 | Black    |      1 |       0 | 2012-01-26 00:35:19 |
|        2 | Blue     |      1 |       0 | 2012-01-26 00:35:19 |
|        3 | Gray     |      1 |       0 | 2012-01-26 00:35:19 |
|        4 | Silver   |      1 |       0 | 2012-01-26 00:35:19 |
|        5 | Tan      |      1 |       0 | 2012-01-26 00:35:19 |
|        6 | White    |      1 |       0 | 2012-04-05 14:14:37 |
|        7 | Amarillo |      1 |       0 | 2013-10-19 01:25:08 |
+----------+----------+--------+---------+---------------------+

5.-コマンドの実行:

$ pt-table-sync --print --bidirectional --conflict-column 'name' --conflict-comparison newest h=ip_your_server_remote,u=your_user,p=your_password,D=your_db,t=color h=localhost

6.-結果:

/*ip_your_server_remote*/ UPDATE `your_db`.`color` SET `name`='Negro', `status`='1', `deleted`='0', `date_register`='2012-01-26 00:35:19' WHERE `id_color`='1' LIMIT 1;
/*localhost*/ INSERT INTO `your_db`.`color`(`id_color`, `name`, `status`, `deleted`, `date_register`) VALUES ('7', 'Amarillo', '1', '0', '2013-10-19 01:25:08');

結果を直接実行するには、オプションでオプションを変更でき--printます--execute

誰かに役立つことを願っています。

于 2013-10-19T06:16:04.343 に答える