MySQLで
ERROR 2006 (HY000) at Line 19418: MySQL server has gone away
という発生したエラーの回避方法をメモしました。
目次
ERROR 2006 (HY000) at Line 19418: MySQL server has gone away
WordPressでバックアップしたデータベースのファイルをリストアしようとしたときに下記のエラーが表示されました。
1 2 3 |
# mysql -u xxxx -p yyyy < wordpress.sql Enter password: ERROR 2006 (HY000) at Line 19418: MySQL server has gone away |
仕方がないので、mysqlのコマンドラインからデータベースのバックアップファイルを読み込むことにしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 44 Server version: 5.5.37-MariaDB MariaDB Server Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> use wordpress Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [wordpress]> source wordpress.sql ・・・・ ・・・・ ・・・・ ・・・・ Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) ERROR 1231 (42000) at line 40144 in file: '/var/www/html/wordpress.sql': Variable 'time_zone' can't be set to the value of 'NULL' ERROR 1231 (42000) at line 40145 in file: '/var/www/html/wordpress.sql': Variable 'sql_mode' can't be set to the value of 'NULL' ERROR 1231 (42000) at line 40146 in file: '/var/www/html/wordpress.sql': Variable 'foreign_key_checks' can't be set to the value of 'NULL' ERROR 1231 (42000) at line 40147 in file: '/var/www/html/wordpress.sql': Variable 'unique_checks' can't be set to the value of 'NULL' ERROR 1231 (42000) at line 40148 in file: '/var/www/html/wordpress.sql': Variable 'character_set_client' can't be set to the value of 'NULL' Query OK, 0 rows affected (0.00 sec) ERROR 1231 (42000) at line 40150 in file: '/var/www/html/wordpress.sql': Variable 'collation_connection' can't be set to the value of 'NULL' ERROR 1231 (42000) at line 40151 in file: '/var/www/html/wordpress.sql': Variable 'sql_notes' can't be set to the value of 'NULL' |
うーん、やっぱりエラーが出ます。
どれも似たような問題なんでしょうか。
以下の単語から調べてみます。
ERROR 1231 (42000)
Variable ‘time_zone’ can’t be set to the value of ‘NULL’
Variable ‘sql_mode’ can’t be set to the value of ‘NULL’
Variable ‘foreign_key_checks’ can’t be set to the value of ‘NULL’
Variable ‘unique_checks’ can’t be set to the value of ‘NULL’
Variable ‘character_set_client’ can’t be set to the value of ‘NULL’
Variable ‘collation_connection’ can’t be set to the value of ‘NULL’
Variable ‘sql_notes’ can’t be set to the value of ‘NULL’
解決策:my.cnfにmax_allowed_packet = 32Mを追加
調査した結果、/etc/my.cnfの[mysqld]の中でmax_allowed_packetのサイズを変更するだけで修正できるようです。
1 |
max_allowed_packet = 32M |
この後、MariaDBを再起動します。
1 |
# systemctl restart mariadb.service |
今度は、データベースファイルをリストアするとエラーがなくなっていることがわかります。
魔法のようです。
プログラミングの無料レッスン体験
約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp
<Codecampの特徴>
1 現役エンジニアによる指導
2オンラインでのマンツーマン形式の講義
3大手企業にも導入されている実践的なカリキュラム
↓無料体験レッスン実施中です。
コメント