0

pt-table-sync を実行して MYSQL マスター/スレーブ レプリケーションを再同期しようとしています。Debian 5 を実行している 2 つの VPS システムがあり、レプリケーションは問題なく実行されています。

私が抱えている問題は、MASTER サーバーで pt-table-sync を実行すると、SLAVE サーバーへの接続に失敗し続けることです。次のコマンドを実行しています: pt
-table-sync --dry-run --sync-to-master h='ip of slave server',u='user',p='password 'ウェブサイト アドレス」は、この MySQL サーバーへの接続を許可されていません ...

ただし、マスター サーバーからリモートでスレーブ mysql サーバーに接続しようとすると、次のようになります。
mysql -h 'スレーブ サーバーの ip' -u 'user' -p'password'

その後、問題はまったくなく、データベースに正常にアクセスできます。

私のスレーブサーバーでは、マスターが接続時に使用する mysql ユーザーアカウントを調整し、ホストを調整し、一時的に「任意」に設定して、それが機能するかどうかを確認しようとしました。

私が奇妙に感じたのは、私が発行した正確な pt-table-sync コマンドに応じて、マシンのホスト名が変わるように見えたことです。例えば:

pt-table-sync --dry-run --sync-to-master h='ip of slave server',u='user',p='password'
--> Host 'my website address' is not allowed to ... でこの MySQL サーバーに接続します。

pt-table-sync --dry-run --sync-to-master 'スレーブ サーバーの IP'
--> ユーザー 'root'@''my VPS name'' のアクセスが拒否されました (パスワードを使用: NO)

2 つのコマンドに応じて異なる「ホスト」名が提供される理由がわかりません。リモートで mysql に直接接続できる場合、これが失敗する理由はありますか?

4

3 に答える 3

1

両方のサーバーで MySQL root ユーザーのパスワードが異なるために、同様の問題が発生しました。両端で同じパスワードを設定すると、すべてが機能し始めました。

于 2012-06-01T16:39:47.563 に答える
1

ええ、あなたがuser3207102と言ったように、私は問題を解決しました。

これが私がしたことです。

  1. まず、ユーザーがスレーブからマスターにログインできるかどうかを確認しました。

    $ mysql -uroot -pmypassword123 -h master.ip.addr
    ERROR 1045 (28000): Access denied for user 'root'@'zeronepal.local' (using password: YES)
    
  2. 自分のマシンからマスターにログインできることがわかったので、rootユーザーが他のホストからログインできるかどうかを確認しました。

mysql> 'root'@'%' の許可を表示;
エラー 1141 (42000): ホスト '%' のユーザー 'root' に対して定義されたそのような許可はありません

ドゥー!! 私は許可を持っていませんでした...だから私はユーザーにスレーブと同じroot権限を与えますpassword

mysql> に対するすべての権限を付与します。「mypassword123」で識別される「root」@「%」へ。
クエリ OK、影響を受ける行は 0 (0.00 秒)
mysql> 権限をフラッシュします。
クエリ OK、影響を受ける行は 0 (0.00 秒)

最後に、マスターからコマンドを実行すると...

$./pt-table-sync -uroot --execute --sync-to-master slave.ip.addr --tables employees.blah --ask-pass
192.168.2.214 のパスワードを入力してください:

... tadaa... うまくいきました、万歳 (幸せ)。ありがとうガイズ。

于 2014-01-23T11:47:57.387 に答える
0

私はこの問題を解決しました:エラーはスレーブDBサーバーからではなく、マスター自体から来ています! pt-table-check は、同じユーザーとパスワードを使用して、まずスレーブに接続し、次にマスターに接続しようとします! そのため、間違ったパスワードを入力すると、エラーで別のユーザーが発生します (その場合、エラーはスレーブから発生します)。

user私の場合、 @[IP address]ではなくuser@としてマスターに接続しようとしておりlocalhost(マスターでコマンドを実行していました)、そのようなユーザーは定義されていませんでした。お役に立てば幸いです。

ダビデ

于 2014-01-17T15:04:10.533 に答える