![]() |
![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте, уважаемые участники форума.
Я пытаюсь восстановить базу данных.
Во время иморта базы получаю следующее
/* SQL Error (2013): Lost connection to MySQL server during query */
/* 338 rows affected, 0 rows found. Duration for 50 of 80 queries: 2,250 sec. */
/* Connection to localhost closed at 2012-10-24 23:11:36 */
Поискав в интернете, никакой путной информации не нашел, но прочитал где-то что нужно посмотреть в чем ошибка, чтобы можно было понять.
Помогите разобраться пожалуйста.
Неактивен
Как восстанавливаете базу? Что в error log?
Неактивен
Хотелось бы сначала понять, где error log, и как его посмотреть?
Неактивен
В каталоге баз данных, что-то типа c:\programs files\mysql\data
Файл с расширением .err, смотреть текстовым редактором, например, блокнотом.
Неактивен
121025 11:42:11 [Note] C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: Normal shutdown
121025 11:42:11 [Note] Event Scheduler: Purging the queue. 0 events
121025 11:42:12 InnoDB: Starting shutdown...
121025 11:42:23 InnoDB: Shutdown completed; log sequence number 0 44243
121025 11:42:23 [Note] C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: Shutdown complete
121025 11:42:29 [Note] Plugin 'FEDERATED' is disabled.
121025 11:42:30 InnoDB: Initializing buffer pool, size = 180.0M
121025 11:42:30 InnoDB: Completed initialization of buffer pool
121025 11:42:32 InnoDB: Started; log sequence number 0 44243
121025 11:42:33 [Note] Event Scheduler: Loaded 0 events
121025 11:42:33 [Note] C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: ready for connections.
Version: '5.1.57-community' socket: '' port: 3306 MySQL Community Server (GPL)
Неактивен
Пробовал перевести все это дело, но насколько понял, это относится к перезагрузки mysql. А перезагрузку сделал, после того, как очистил этот файл, т.к. там было очень много записей, и после выполнения запроса, обнаружил, что файл все еще пустой. Перезагрузил mysql, получил эти записи. Других подобных файлов не нашел, сейчас попробую еще поиском воспользоваться, но данный файл лежал в папке с другими файлами таблицы.
Для восстановления базы использую программу heidiSQL, он и выдает мне ошибку.
Неактивен
Больше ничего не нашел. Так и не понял в чем моя проблема.
Неактивен
Т.е. вы очистили файл, перезагрузили mysql, выполнили импорт и после посмотрели содержимое файла?
Попробуйте восстановить базу через консоль (меню Пуск - выполнить - cmd ).
C:\Documents and Settings\aa>cd "c:\Program Files\MariaDB 5.3\bin"
C:\Program Files\MariaDB 5.3\bin>mysql -u root -p имя_базы < c:\имя_файла.sql
Неактивен
Да все верно, я очистил файл, перезагрузил mysql, выполнил импорт и посмотрел содержимое файла?
Попробовал сделать как описано.
Получил следующую ошибку
ERROR 1366 <HY000> at line 19: Incorrect string value: '\xC0\xEA\xF2\xE8\xE2\xE0
...' for column 'menu' at row 1
А в файле так ничего нового и не появилось
Отредактированно platedz (26.10.2012 12:51:07)
Неактивен
А это кодировка консоли винды cp866. Перед тем как заливать дамп измените её на utf-8 (chcp 65001) или cp1251 (chcp 1251).
C:\Program Files\MariaDB 5.3\bin>chcp 1251
C:\Program Files\MariaDB 5.3\bin>mysql -u root -p имя_базы < c:\имя_файла.sql
Неактивен
Спасибо за ответ, но к сожалению не помогло - результат тотже ошибка 1366
Неактивен
В начале дамп есть set names имя_кодировки?
Неактивен
Нет нету.
Вот такое только есть
#SKD101|a_catalog|21|2012.01.17 11:29:05|54315|1|74|5|271|12|244|38|5|11|56|32436|7|11879|1027|52|33|938|1583|4935|6|702
Неактивен
Что касается кодировки. Вам нужно:
1. Определить в какой кодировке дамп (файл с расширением .sql). Например, можно открыть его с помощью браузера и посмотреть меню Вид - Кодировка.
2. В начале дампа указать
SET NAMES имя_кодировки_из_прошлого_пункта;
3. Консоль перевести в ту же кодировку.
После этого загрузить дамп.
Но приведенный вами отрывок дапма вызывает сильные сомнения. У вас файл с расширением .sql или .txt ? Как вы его получили?
Неактивен
Спасибо попробую.
Получил с помощью встроенной в скрипт функции если не ошибаюсь взятой отсюда http://sypex.net/.
Замечу, что и раньше с помощью нее восстанавливал, проблем не возникало.
Опытным путем установил, что проблема возникает там, где большой Insert into Т.е.
INSERT INTO `table` VALUES (1.....),(2.....),(3.....) и тд. в несколько тысяч. (10000.....)
Если разбить его скажем на несколько сотен
INSERT INTO `table` VALUES (1.....),(2.....),(3.....) и тд. (100.....)
INSERT INTO `table` VALUES (101.....),(102.....),(103.....) и тд. (200.....);
то загружается нормально
Также хотел уточнить, возможно есть другой способ посмотреть ошибки, скажем из консоли. Мало ли вдруг где не там смотрел.
Отредактированно platedz (27.10.2012 02:00:25)
Неактивен
platedz написал:
Спасибо попробую.
Получил с помощью встроенной в скрипт функции если не ошибаюсь взятой отсюда http://sypex.net/.
Замечу, что и раньше с помощью нее восстанавливал, проблем не возникало.
Рекомендую делать дамп с помощью mysqldump
http://sqlinfo.ru/forum/viewtopic.php?id=583
тогда не придется гадать ошибка ли это скрипта, который сделал кривой дамп.
platedz написал:
Опытным путем установил, что проблема возникает там, где большой Insert into Т.е.
Т.е. предыдущая проблема с кодировками разрешена?
platedz написал:
Опытным путем установил, что проблема возникает там, где большой Insert into Т.е.
INSERT INTO `table` VALUES (1.....),(2.....),(3.....) и тд. в несколько тысяч. (10000.....)
Если разбить его скажем на несколько сотен
INSERT INTO `table` VALUES (1.....),(2.....),(3.....) и тд. (100.....)
INSERT INTO `table` VALUES (101.....),(102.....),(103.....) и тд. (200.....);
то загружается нормально
С какой ошибкой заканчивается попытка восстановления в консоли?
platedz написал:
Также хотел уточнить, возможно есть другой способ посмотреть ошибки, скажем из консоли. Мало ли вдруг где не там смотрел.
Я для того и рекомендовал вам восстанавливать из консоли, чтобы видеть код и текст ошибки.
Неактивен
vasya написал:
Т.е. предыдущая проблема с кодировками разрешена?
Скорее появилась новая проблема
В начале файла написал
SET NAMES 1251;
Получил
ERROR 1064 <42000> at line 1: You have an error in yout SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1251
vasya написал:
Рекомендую делать дамп с помощью mysqldump
http://sqlinfo.ru/forum/viewtopic.php?id=583
тогда не придется гадать ошибка ли это скрипта, который сделал кривой дамп.
Дело в том, что на сайте есть администратор, который после заполнения базы делает резерв, и умеет пользоваться только функциями сайта.
vasya написал:
С какой ошибкой заканчивается попытка восстановления в консоли?
Если разбить данные вышеуказанным способом, то ошибки не возникает. Но там несколько таблиц в которых несколько десятков тысяч колонок, и мне необходимо делать импорт базы данных для отладки скрипта локально, что занимает крайне много времени если каждую таблицу делить на части.
vasya написал:
Я для того и рекомендовал вам восстанавливать из консоли, чтобы видеть код и текст ошибки.
Я имел ввиду, что может можно прочитать логи с помощью консольных команд. Вдруг я что не так открыл или посмотрел.
А еще я не разобрался как здесь цитировать отдельные куски сообщений, буду признателен за подсказку.
Неактивен
platedz написал:
vasya написал:
Т.е. предыдущая проблема с кодировками разрешена?
Скорее появилась новая проблема
В начале файла написал
SET NAMES 1251;
Получил
ERROR 1064 <42000> at line 1: You have an error in yout SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1251
кодировка называется cp1251
SET NAMES cp1251;
Неактивен
platedz написал:
Дело в том, что на сайте есть администратор, который после заполнения базы делает резерв, и умеет пользоваться только функциями сайта.
Обучить.
platedz написал:
Если разбить данные вышеуказанным способом, то ошибки не возникает. Но там несколько таблиц в которых несколько десятков тысяч колонок, и мне необходимо делать импорт базы данных для отладки скрипта локально, что занимает крайне много времени если каждую таблицу делить на части.
Предполагаю, что проблема в маленьком значении max_allowed_packet на локальном компе.
В файле my.ini в секции [mysqld] найдите значение max_allowed_packet и увеличьте, если есть или допишите
[mysqld]
max_allowed_packet = 32M
После перезапустите MySQL
platedz написал:
Я имел ввиду, что может можно прочитать логи с помощью консольных команд. Вдруг я что не так открыл или посмотрел.
А еще я не разобрался как здесь цитировать отдельные куски сообщений, буду признателен за подсказку.
Не понял о каких логах идет речь.
Цитировать куски неудобно - цитируется всё сообщение, затем Ctrl+C, Ctrl+V, Del.
Неактивен
кодировку cp1251 пробовал, пробовал window-1251 и utf-8 и др. Сейчас точно не скажу, что получил в зависимости от того или иного написания кодировки, но было два вида ошибок, или как указано выше, или еще какая-то, но она возникала в том случае, если набирать любую билиберду, т.ч. уточнять наверное нет смысла.
max_allowed_packet = 32M у меня не было написано. Прописал, все прошло замечательно.
Большое спасибо.
Про логи я имел ввиду, что посмотреть файл ошибок. Просто на мой взгляд раз ошибка возникает, значит она вроде как должна где-то фиксироваться. А раз в файле она не прописана, то возможно прописана в другом месте, и можно посмотреть ее прописав какую-либо команду в консоли
Отредактированно platedz (01.11.2012 05:29:19)
Неактивен
В файле .err фиксируются ошибки сервера, а у вас имеют место быть ошибки клиента.
Неактивен
А ошибки клиента не фиксируются?
Неактивен
Зависит от клиента. Если, например, клиент ваш скрипт php, то будет фиксировать, если запрограммируете правильно.
Если речь про консоль винды, то нет. Для неё то, что вы называете ошибкой, такой же ответ сервера как и любой другой.
Неактивен
Почти ясно. Спасибо большое.
Неактивен