MySQLのスレーブI/Oスレッドの実行中に
-
19-09-2019 - |
質問
私はプリケーションをセットアップすためのMySQLサーバーです。私は接続できるから、スレーブはマスタサーバを使用複製ユーザ/パスワードになります。との付き合いのなかで、スレーブSQLスレッド走行が、スレーブ I/O スレッドは実行中のスレーブI/O状態が空の場合チェックのショーでスレーブ状'.何が問題なのでしょうか。
う解決す。電源の再投入により自動的に復帰ーブルです。
これは私の悪い:に代えることは"複製スレーブ'権限 *.*
, だけでしたがために my_db.*
.
解決
の代わりの「レプリケーションを与えます スレーブ」特権は、私だけでした MY_DBのためにそれを与える。*。
複製スレーブは、このような
のようにそのコマンドのみグローバル権限(すなわち、ユーザ単位のみ)を意味していますGRANT REPLICATION SLAVE on mydb.* TO 'someuser'@'%';
あなたはそれごとのデータベース/列/テーブルを付与することはできませんとしても効果はありません。
あなたが実行する必要があるコマンドがあります:
GRANT REPLICATION SLAVE on *.* TO 'someuser'@'%';
次にSTART SLAVE
を行います。また、それが便利なMySQLのエラーログで見て見つけるかもしれない。
私はレプリケーション設定の優れた読み取りをお勧めしたいですドキュメントに、それは詳細にこのすべてを説明してます。
他のヒント
I抱える問題を固定用性はますます高まっています。完全なスレッドのリンク http://www.percona.com/forums/questions-discussions/percona-xtrabackup/11842-backup-stopped-working-slave-sql-running-no
ステップとして記述した@Luxknight007を除く彼のステップ2に進みます。しかしこのスレッドを含む詳細くれるので安心です。以下は、ソリューションを使っています。
"最初の問題は、そのまま変更、複製の位置で固定の誤り、誤ったベルファイル名フォーマット(まれて使用されたばかりのその後いついらっしゃるかと思い).この場を始め、必要なものにベルファイル位置にスレーブsql_thread停止します。ベースレーブの状態を出力なんだかとってもおいしそうにスレーブが読みからベルファイルできるようにRead_Master_Log_Pos値よりも小さいExec_Master_Log_Pos価値をつけるとともに、大きを読む新しいベファイルをスレーブがsql_thread止める必要はありません。べてのベルファイルをスレーブsql_thread実際に失敗します。見てのエラーログのようなもの。
コード:
2013-10-08 12:48:51 37545 [ERROR] Slave SQL: Error 'Table 'testdb.test2' doesn't exist' on query. Default database: 'testdb'. Query: 'insert into test1 select * from test2', Error_code: 1146
2013-10-08 12:48:51 37545 [Warning] Slave: Table 'testdb.test2' doesn't exist Error_code: 1146
2013-10-08 12:48:51 37545 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000001' position 3427
このサンプルで作成されたので、自分が異なっていた。注エラーが類似の項目で検索条件を絞り込スレーブ状態にします。なお特定のエラーメッセージがエラーログファイルを探しの部分は、ファイル名の位置("まずログイン'mysql便まで。000001の位置3427"私の例)。の位置は315098143に示すスレーブの状態は、その時にスレーブsql_thread停止を実行イベント(Exec_Master_Log_Posのio_thread保読していないとRead_Master_Log_Pos).
一度ス、観光に幅広くご利用いただけ正しいベルファイル名と位置、お客様の変化をマスター計算書におスレーブを使用いただいた情報に位置し、エラーログにあります。いことがあるので注意してファイル名のようなもの"newcrmdb1便まで。XXXXXXのではないが、mysqlの便まで。XXXXXXですこの命名規約おshow slave statusます。
コード:
mysql> change master to MASTER_LOG_FILE='newcrmdb1-bin.XXXXXX', Master_Log_Pos=315098143;
change master to MASTER_LOG_FILE='mysql-bin.000082' , Master_Log_Pos=47914844;
ロサンゼルス生まれとの複製の場所にスレーブsql_threadに失敗したときは、必要なものを固定しているとエラーが表示されるかたについて不服を申し立てを開始。
当初の複製エラーがないことがおわかり頂けるとテーブル asteriskcdr
.bpleadcf
存在しない、スレーブで、insertステートメントは失敗時の選択を試みのデータからの表に示す。ので、問題があるスレーブが表示されているときと同期をとおす。の場合はテーブルの質問をマスターは静的または中心静まるの解決に向けた輸出のデータからそのテーブルを使用mysqldumpを設とする。それが不可能な場合は、まずこのデータをきだけスキップの複製決算sql_slave_skip_counterて、そしてそのスレーブが同期します。
やドできることが復興にスレーブのマスターとしての最後のリゾートです。=)"
私は同じ問題に遭遇していると私は、この手順を試してください。
まずどこかのmy.cnfまたはmy.iniがslave-skip-errors=1046
に【のmysqld]の下にこのコードを追加
これは我々が複製停止全バイナリログファイルを実行しますので、すべての重複したエントリをスキップします、あなたは成功し、複製した後、このコードをコメントすることがあります。
1.STOPのSLAVE;
2.RESETのSLAVE;
= 'mysqlの-bin.000049' をMASTER_LOG_FILE TO3.CHANGEのMASTER;
Note: MASTER_LOG_FILE must be the last file where it stop from replicating
MASTER_LOG_POS = 98 4.CHANGEマスター
5.STARTのSLAVE;
あなたが成功しているかどうかを確認