エラーコード:2013を取得しました。MySQLWorkbenchを使用してテーブルにインデックスを追加しようとしたときに、クエリエラー中にMySQLサーバーへの接続が失われました。また、長いクエリを実行するたびに表示されることにも気付きました。
タイムアウト値を増やす距離はありますか?
エラーコード:2013を取得しました。MySQLWorkbenchを使用してテーブルにインデックスを追加しようとしたときに、クエリエラー中にMySQLサーバーへの接続が失われました。また、長いクエリを実行するたびに表示されることにも気付きました。
タイムアウト値を増やす距離はありますか?
回答:
MySQL WorkBenchの新しいバージョンには、特定のタイムアウトを変更するオプションがあります。
私にとっては、編集→設定→SQLエディター→DBMS接続の読み取りタイムアウト(秒):600
値を6000に変更しました。
また、データセット全体を検索するたびに制限を設定するのが面倒になるため、制限されていない制限行も表示されます。
コマンドラインオプションnet_read_timeout
/ wait_timeout
と適切な値(秒単位)を指定してDBサーバーを起動します-例:--net_read_timeout=100
。
mysqld
。
クエリにblobデータがある場合、この問題は、この回答で提案されているmy.ini
変更を適用することで修正できます。
[mysqld]
max_allowed_packet=16M
デフォルトでは、これは1Mです(許可される最大値は1024Mです)。指定された値が1024Kの倍数でない場合、1024Kの最も近い倍数に自動的に丸められます。
参照されているスレッドはMySQLエラー2006に関するものですがmax_allowed_packet
、1Mから16Mに設定すると、長いクエリを実行したときに表示される2013エラーが修正されました。
WAMPユーザーの場合:[wampmysqld]
セクションにフラグがあります。
以下を/ etc / mysql / cnfファイルに追加します。
innodb_buffer_pool_size = 64M
例:
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
innodb_buffer_pool_size = 64M
/etc/mysql/cnf
は正しいですか?そうじゃないの/etc/my.cnf
?
SET @@local.net_read_timeout=360;
警告:リモート接続で適用する場合、以下は機能しません。
SET @@global.net_read_timeout=360;
このエラーメッセージには3つの原因が考えられます
詳細について は>>
原因2:
SET GLOBAL interactive_timeout=60;
デフォルトの30秒から60秒以上
原因3:
SET GLOBAL connect_timeout=60;
ありがとうございます。しかし、mysqldbの更新により、構成は次のようになりました。
max_allowed_packet
net_write_timeout
net_read_timeout
mysql設定ファイルの 'interactive_timeout'および 'wait_timeout'プロパティを必要な値に設定する必要があります。
MySQLの適切な機能に必要な多くのテーブルの再構築とともに、innoDBエンジンを再構築するMySQLアップグレードを実行するだけですperformance_schema
。information_schema
。
シェルから以下のコマンドを発行します。
sudo mysql_upgrade -u root -p
私は古いことを知っていますが、Macで
1. Control-click your connection and choose Connection Properties.
2. Under Advanced tab, set the Socket Timeout (sec) to a larger value.
[編集]-> [設定]-> [SQLエディター]-> [MySQLセッション]で「読み取りタイムアウト」時間を変更します。
[編集]→[設定]→[SQLクエリ]で制限行をオフにしてみてください
mysql設定ファイルの 'interactive_timeout'および 'wait_timeout'プロパティを必要な値に設定する必要があるためです。
大きなダンプファイルの復元中にこの問題が発生し、ネットワークと何らかの関係がある(ローカルホストでの実行など)という問題を除外できる場合は、私の解決策が役立つ可能性があります。
私のmysqldumpは、mysqlで計算するには大きすぎる少なくとも1つのINSERTを保持していました。show variables like "net_buffer_length";
mysql-cli内に入力すると、この変数を表示できます。次の3つの可能性があります。
--skip-extended-insert
、挿入ごとに1行使用します->これらのダンプは読みやすいですが、1GBを超える大きなダンプには適していません。非常に遅くなる傾向があるためです。--net-buffer_length NR_OF_BYTES
、NR_OF_BYTESがサーバーのnet_buffer_lengthよりも小さい場合->サーバーの再起動は必要ありませんが、これが最良の解決策だと思います。次のmysqldumpコマンドを使用しました。
mysqldump --skip-comments --set-charset --default-character-set=utf8 --single-transaction --net-buffer_length 4096 DBX > dumpfile
.csvファイルを読み込むときに同じ問題が発生しました。ファイルを.sqlに変換しました。
以下のコマンドを使用して、この問題を回避することができます。
mysql -u <user> -p -D <DB name> < file.sql
これがお役に立てば幸いです。
ここで他のすべてのソリューションが失敗する場合-Syslog(/ var / log / syslogまたは同様のもの)をチェックして、クエリ中にサーバーのメモリが不足していないかどうかを確認してください。
スワップファイルを構成せずにinnodb_buffer_pool_sizeを物理メモリに近づけすぎると、この問題が発生しました。MySQLは、データベース固有のサーバー設定innodb_buffer_pool_sizeを最大で物理メモリの約80%に設定することをお勧めします。これを約90%に設定すると、カーネルがmysqlプロセスを強制終了しました。innodb_buffer_pool_sizeを約80%に戻し、問題を修正しました。
これは、私のinnodb_buffer_pool_sizeがサーバーで使用可能なRAMサイズよりも大きく設定されているために起こりました。これが原因で物事が中断され、このエラーが発生します。修正は、my.cnfをinnodb_buffer_pool_sizeの正しい設定で更新することです。
ワークベンチの編集→設定→SQLエディター→DBMS接続読み取りタイムアウトに進みます:最大3000。エラーは発生しなくなりました。
SSHを使用してMySQLデータベースに接続する場合、ここに回答がないようです。他の回答で提案されているように、1ではなく2つの場所を確認する必要があります。
Workbench Edit→Preferences→SQL Editor→DBMS
ワークベンチの編集→設定→SSH→タイムアウト
デフォルトのSSHタイムアウトが非常に低く設定されており、タイムアウトの問題のいくつか(ただし、すべてではない)が発生しています。その後、MySQL Workbenchを再起動することを忘れないでください!
最後に、DB管理者に連絡して、my.conf + mysql restartを介してmysql自体のwait_timeoutおよびinteractive_timeoutプロパティを増やすように依頼するか、mysqlの再起動がオプションでない場合はグローバルセットを実行することをお勧めします。
お役に立てれば!
DBMS connection read time out
フィールドには、わずか5つの数字まで受け入れ、0にフィールドを設定すると、デフォルトのパラメータ(600秒)に相当します。(Windows 7 64ビットUltimate、MySQL Workbench 5.2.47 CE)