ERROR 126 (HY000): Incorrect key file for table ‘/tmp/#sql613d_3eb2bd_0.MYI’; try to repair it

Словил на одном запросе в MySQL такую ошибку. Долго думал.. Наконец сообразил, что /tmp у меня монтируется в памяти (2506мб), для ускорения MySQL, и вот как раз в «сложных» запроса её родимой и не хватает..

MySQL временное отключение триггеров

К сожалению «штатной» возможности на данный момент нет. Можно только сделать «финт ушами», и в триггер добавить проверку на необходимость срабатываний. Например вот так:

А в нужный момент, выполнять:

Как залить дамп базы данных созданный в MySQL 5.xx (до 5.6) в MySQL базу версии 5.7

Начиная с MySQL 5.7 база данных по умолчанию запускается в «строгом» режиме, т.е. например если не верная дата в базе, или «должно быть что то, а вставляется NULL», то такие запросы более работать не будут. Соотвественно и дамп сделаный например в MySQL 5.1 в 5.7 уже не зальется. Что делать, если «исправлять ошибки не вариант»? Поможет переключение MySQL в «мягкий режим». Например в консольке:

mysql: delete из select

Казалось бы простая задача, удалить записи по выборке из select. Например:

Однако такая запись выдает ошибку. Исправляемся «костылем»:

Маленькая хитрость при восстановлении из дампа MySQL

Довольно часто, системные администраторы делают дампы не какой то отдельной таблицы, а все базы целиком. Видимо примерно так:

Отсюда возникает проблема: если нужно восстановить только одну базу из множества,  то её не достать — восстанавливаются сразу все.

Но! Костылем можно. Создаем пользователя, который имеет доступ только к одной базе:

И достаем из бекапа базы, под этим пользователем, сказав предварительно MySQL, игнорировать все ошибки (Access denied for user)

1 4 5 6 7 8 12