2012-02-18 29 views
0

pt-table-syncを実行してMYSQLマスタ/スレーブレプリケーションを再同期しようとしています。 私はDebian 5を実行している2つのVPSシステムを持っており、複製は何の問題もなく実行されています。pt-table-sync、ホスト名に関する奇妙な問題

私が持っている問題は、私はマスターサーバー上のPT-テーブル同期を実行すると、それはスレーブサーバへの接続に失敗し続けるということです。
PT-テーブル同期--dry-実行--sync・ツー・マスターH = 'スレーブサーバのIP'、U = 'ユーザー'、P = 'パスワード'
返します。私は、次のコマンドを実行しています:私は、マスターサーバーからリモートスレーブMySQLサーバに接続しようとした場合
ホストの私のウェブサイトのアドレスは 'しかし

...で、このMySQLサーバへの接続を許可されていません。
のmysql -h "スレーブサーバのIP「-u 『は、ユーザは、その後、私は何の問題もない、とデータベースの罰金にアクセスすることができます

』を-p'password」。私のスレーブサーバ上で

私がホストを調整し、それに接続するときMASTERが使用するMySQLユーザーアカウントを調整しようとした、とさえ「は任意の」一時的にそれがうまくいくかどうかを確認するにそれらを設定しています。私も奇妙見つけたもの

は私が出す正確なPT-テーブル-syncコマンドに応じて、マシンのホスト名を変えたようだったということです。例:

pt-table-sync --dry-run --sync-to-master h = 'スレーブサーバーのIP'、u = 'user'、p = 'password'
- >ホスト私のウェブサイトのアドレスは、このMySQLサーバに接続することができません。

pt-table-sync --dry-run --sync-to-master 'スレーブサーバのip'
- >アクセスは、ユーザー「ルート」のために拒否された@「(パスワードを使用して:NO)、」私のVPS名「」

を、2つのコマンドに応じて、異なる「ホスト」の名前を提供している理由は、私がわからないのですか?私は直接mysqlにリモートで接続することができない場合、なぜこれが失敗するのでしょうか?

答えて

1

私は、両方のサーバーのMySQL rootユーザーのパスワードが異なるため、同様の問題が発生しました。同じパスワードを両端に設定すると、すべてが動作するようになりました。

0

私はこの問題を解決しました。エラーはスレーブDBサーバーからではなく、マスターからのものです。 pt-table-checkは、最初にスレーブに接続し、次に同じユーザーとパスワードを使用してマスタに接続しようとします。そのため、間違ったパスワードを入力した場合、エラーで別のユーザーが表示されます(この場合、エラーはスレーブからのものです)。

それは(私がマスター上でコマンドを実行していた)と、そのようなユーザーが定義されていなかった[IP address]代わりのlocalhost @user @userとしてマスタに接続しようとしていた私の場合は。 私はそれが助けてくれることを願っています。

ダヴィデ

0

雅は、あなたがuser3207102言ったと同じように、私は問題が解決しました。ここで

は私がやったことです。

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

    $ mysql -uroot -pmypassword123 -h master.ip.addr 
    ERROR 1045 (28000): Access denied for user 'root'@'zeronepal.local' (using password: YES) 
    
  2. 私は、独自のマシンからマスターにログインできkenw、そうrootユーザが他のホストからログインするか、できなかった場合、私がチェック。

mysqlの> 'ルート' @ '%' のショーの助成金。
ERROR 1141(42000):ホストにそのような助成ユーザーに対して定義された「ルートは '%'

DOOHありません!私は...助成金を持っていなかったので、私はrootユーザーがスレーブ

mysqlのと同じpasswordと権限を与える>上のすべての権限を付与します。を 'root' @ '%'と 'mypassword123'で識別します。
クエリOK、0行に影響あり(0.00秒)
mysql>フラッシュ特権。
クエリOK、0行が影響を受けた(0.00秒)

最後に...私のマスター上からの命令を実行する上

$/PT-テーブル同期-uroot --execute。 - -sync-にマスターslave.ip.addr --tables employees.blah --askパスは
は192.168.2.214のパスワードを入力します。

...それは働いていた... tadaa、万歳(ハッピー)。ありがとう。