大きなダンプファイルをインポートしようとすると、「MySQLサーバーがなくなりました」


11

MySQLダンプファイルをインポートしようとしています。

ファイルはLinuxサーバーで作成されました。Windowsでインポートしようとしています

コマンドラインにログインして実行しました:

SOURCE c:/dump.sql

しかし、これにより、いくつかの文字セットの問題が発生したようです(具体的には、スマート引用符やその他の非標準の句読点で)。

私が実行することが提案されました:

mysql -u username -d dbase < c:\dump.sql

これを試すとエラーが発生します

ERROR 2006 (HY000) at line 149351: MySQL server has gone away

少しグーグルで、これはmax_allowed_pa​​cketスイッチと関係があると示唆されましたが、私はこれを試しましたが、うまくいきませんでした。誰もこれが何であるか考えていますか?

誰かがキャラクターセットの問題についての提案を持っているなら、それも役に立つでしょう。


フィードバックはありますか?[コメントするには15文字が必要]
ミハイリンバシャン2009年

回答:


23

質問のタイトルでエラーメッセージを読んだ後の最初の本能は、max_allowed_pa​​cketを増やすことを提案することでした。「そのスイッチ」を試してみたが、うまくいかなかったとおっしゃいました。サーバーの構成ファイルを正しく変更したことを確認できますか?フレージングにより、mysql.exeクライアントコマンドラインでコマンドラインスイッチとして使用しようとしたように聞こえますが、サーバーが動作を変更することはありません。

つまり、要するに、サーバーが現在使用しているmy.cnfファイルを見つけて編集することです。では[mysqld]セクションのようなものにmax_allowed_pa​​cketの設定を変更

[mysqld]
max_allowed_packet=32M

構成を変更した後、サーバーを再起動することを忘れないでください。

例として32M(とんでもない大きさの値)を使用しました。クエリは膨大に思えるので、この値(または十分なRAMがある場合は64M)を試して、それが機能するかどうかを確認する必要があります。

別のオプションは、サーバーをそのままにして、SQLダンプの生成に使用されるクライアントの動作を変更することです。個々のクエリのサイズを1 MB未満に制限するように指示します-これもトリックを行う必要があります。

詳細については、B.1.2.10を参照してくださいMySQLマニュアルのパケットが大きすぎます。


1
はい、コマンドラインスイッチを試しました。効果があると思った理由は、それを小さい値に設定すると、最大許容パケットが小さすぎるというエラーが発生したためです。月曜日にあなたの提案を試みます。ありがとう
ジェレミーフランス語

どういたしまして-これが機能することはほぼ確実です。残念ながら、過去50年ほどで書かれた他の多くの(大丈夫、ほとんどの)他のソフトウェアと同様に、MySQLのエラーメッセージは、開発者の心の仕組みにまだ慣れていない場合、吸い込み、誤解を招く傾向があります:)。
ミハイリンバシャン2009年

それを聞いてうれしい-楽しんでください。
ミハイリンバシャン2009年

とてもすごい。私はこれと同じ問題を抱えていたので、質問してバムに来ました!解決しました。@Mihai-支払いを受けるものは何でも。十分ではありません:)
スティーブンエバーズ

このソリューションは、MySQLをlocalhostからリモートサーバーに移動した後にこのエラーが発生したときに役立ちました。どうもありがとうございました!
リーコーエン

1

MySQL 5.7.24では、MySQL 5.6の古い構成が原因でした

sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION. 

SQLバージョンが5.7.5以降と同じ場合、以下のオプションは必須です。

sql_mode=TRADITIONAL

また、/ etc / my.cnfには2つのmax_allowed_pa​​cketパラメーターがあり、もう1つはmysqldump用です。同じことに注意してください。

max_allowed_pa​​cket = <1G>

私のインストールはCentOS7にあります。


0

LinuxボックスからWindowsサーバー上のMySQLインスタンスにアクセスできますか?

もしそうなら、Windowsボックスでサーバーに接続するために-hスイッチを付けてLinuxボックスでコマンドを実行できますか?

mysql -u username -d dbase -h <windows host> < dump.sql

これにより、元のボックスでLinuxクライアントを使用してインポートを行うため、文字セットの問題が解決する場合があります。(単なる推測)


0

MySQLログには何と書かれていますか?

サーバーで修正不可能なエラーが発生した場合、クライアントでこのエラーが報告されることがあります。これは、データベーステーブルのディスク破損の指標になる可能性があります。


-1

アカウントにパスワードはありましたか?おそらく、-pスイッチを追加する必要があります。

mysql -u username -p -d dbase < c:\dump.sql

ああ-たぶんそうではない、それはインポートへの道に失敗したようだから。
ブレント
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.