1

Тема: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Здравствуйте. Делаю дамп базы по средством mysqldump. Далее восстанавливаю этот же дамп по средством php скрипта. При восстановлении получаю ошибку:

Ошибка восстановления базы данных

Unknown or incorrect time zone: 'NULL'

/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Подскажите пожалуйста, как можно решить эту проблему?

Заранее благодарен за ответ.

2

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Вверху дампа должно быть создание переменной OLD_TIME_ZONE. Если ее там нет, то удалите внизу дампа строку вызывающую ошибку.

3

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Да это понятно. Возможно ли при создании дампа обойти этот момент ?

4

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

nik222 сказал:

Да это понятно. Возможно ли при создании дампа обойти этот момент ?

Не знаю ключа, который позволял бы это делать.

5

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Просто странно, что раньше данной проблемы не возникало..... sad

6

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Надо смотреть почему TIME_ZONE возвращает NULL.

7

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

очевидный вопрос: как это можно сделать ?

8

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

nik222 сказал:

очевидный вопрос: как это можно сделать ?

Например так:

SHOW VARIABLES LIKE "time_zone"

Если там не NULL, то надо смотреть где может быть обнулена переменная OLD_TIME_ZONE в дампе.

9 (изменено: nik222, 2012-11-27 21:42:51)

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

sad time_zone - SYSTEM

10

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

nik222 сказал:

time_zone - SYSTEM

Порядок. Почему становится NULL можно понять только методом поиска ошибки перебором, убрав половину данных из дампа и проверив в какой части дампа ошибка проявляется.

11

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Hanut а если Вас не затруднит, то можно поподробней по тому как это реализовать ?

P.S: Как я понял, удалить половину таблиц и потом проверить на предмет ошибки ? А как проверить ?

12

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

nik222 сказал:

удалить половину таблиц и потом проверить на предмет ошибки ? А как проверить ?

Удалить половину таблиц в дампе создав уменьшенную копию, затем импортируйте в тестовую базу данных. Если ошибки не будет, то посмотрите вторую часть дампа. Таким образом делите дамп пополам пока не сузите хотя бы до одной таблицы и тогда можно будет поискать конкретный запрос вызывающий обнуление переменной.

13

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

а как в phpmyadmin можно проверить есть ошибка или нет?

14

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Смотрите это:

Ошибка восстановления базы данных
Unknown or incorrect time zone: 'NULL'
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

15

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

если пробовать по : /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; то я получаю аналогичную ошибку во всех имеющихся у меня базах  sad

16

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

nik222 сказал:

если пробовать по : /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; то я получаю аналогичную ошибку во всех имеющихся у меня базах  sad

Эта строка идет внизу дампа, а сверху формируется переменная так:

SET @OLD_TIME_ZONE=@@TIME_ZONE;

Если сверху данной строки не будет, то нижняя выдаст ошибку, соответственно.

17

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Hanut сказал:

Если сверху данной строки не будет, то нижняя выдаст ошибку, соответственно.

У меня наооброт почему то (((
Вообще фокус с дампом не проходит, обе половины дампа импортируются без каких либо ошибок.

18

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

nik222 сказал:

Вообще фокус с дампом не проходит, обе половины дампа импортируются без каких либо ошибок.

Не могу сказать в чем проблема.

19

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

В общем и целом ругань идет из за куска в конце дампа:

/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

если его удалить - все нормально.

Вверху дампа присутствует:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

20

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Попробуйте в окне SQL запроса выполнить эти две строки и посмотрите выведет ли ошибку.

SET @OLD_TIME_ZONE=@@TIME_ZONE;
SET TIME_ZONE=@OLD_TIME_ZONE;

21

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

SET TIME_ZONE=@OLD_TIME_ZONE; выдает #1298 - Unknown or incorrect time zone: 'NULL'

по первому запросу без ошибок

22

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Я имею в виду обе строки выполнить одновременно.

23

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

SET @OLD_TIME_ZONE=@@TIME_ZONE;# MySQL вернула пустой результат (т.е. ноль строк).

SET TIME_ZONE=@OLD_TIME_ZONE;# MySQL вернула пустой результат (т.е. ноль строк).

24

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Хорошо. Ошибки нет. Когда вы импортируете дамп, то его импорт прерывается в phpMyAdmin, или доходит сразу до конца?

25

Re: /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

обычно до конца