Я пытаюсь импортировать файл дампа 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_packet, но я пробовал это, и это не сработало. Кто-нибудь знает, что это может быть?
Если у кого-то есть предложения по поводу набора символов, это тоже будет полезно.
Ответы:
Мой первый инстинкт после прочтения сообщения об ошибке в заголовке вопроса состоял в том, чтобы предложить увеличить max_allowed_packet. Вы упомянули, что пытались «это переключить», и это не сработало. Можете ли вы подтвердить, что вы правильно изменили файл конфигурации сервера? Ваша фраза звучит так, как будто вы пытались использовать ее в качестве переключателя командной строки в командной строке клиента mysql.exe, что не приведет к изменению поведения сервера.
Короче говоря, вам следует попытаться найти и отредактировать файл my.cnf, который используется вашим сервером в настоящее время. В
[mysqld]
разделе измените настройки max_allowed_packet на что-то вродеНе забудьте перезапустить сервер после изменения конфигурации.
Я использовал 32M (смехотворно большое значение) в качестве примера. Поскольку ваш запрос кажется огромным, вы должны попробовать это значение (или, возможно, даже 64 МБ, если у вас достаточно ОЗУ), чтобы проверить, работает ли он.
Другой вариант - оставить сервер как есть и изменить поведение клиента, используемого для создания дампа SQL. Скажите это, чтобы ограничить размер отдельных запросов до 1 МБ - это также должно помочь.
Для получения более подробной информации см. B.1.2.10. Слишком большой пакет в руководстве по MySQL.
источник
На MySQL 5.7.24 это было из-за старой конфигурации из MySQL 5.6
Опция ниже обязательна, если версия SQL та же 5.7.5 или выше.
sql_mode=TRADITIONAL
Также в /etc/my.cnf есть два параметра max_allowed_packet, другой - для mysqldump. Пожалуйста, обратите внимание на то же самое.
max_allowed_packet = <1G>
Моя установка на CentOS7.
источник
Можете ли вы получить доступ к экземпляру MySQL на сервере Windows из окна Linux?
Если да, то можете ли вы выполнить команду в окне linux с ключом -h для подключения к серверу в окне windows?
Это может решить проблемы с вашим набором символов , так как для импорта вы используете клиент Linux на оригинальной коробке. (просто предположение)
источник
Что говорит журнал MySQL?
Иногда эта ошибка сообщается клиенту, если на сервере есть неисправимая ошибка. Это может быть индикатором повреждения на диске таблиц базы данных.
источник
У вашей учетной записи был пароль? Возможно, вам нужно добавить ключ -p:
источник