Маленькая хитрость при восстановлении из дампа MySQL
Довольно часто, системные администраторы делают дампы не какой то отдельной таблицы, а все базы целиком. Видимо примерно так:
1 |
mysqldump -ulogin -ppassword -ARqe --single-transaction | gzip -c > /nds/mysql/zwwes/`date +%Y-%m-%d`.gz |
Отсюда возникает проблема: если нужно восстановить только одну базу из множества, то её не достать — восстанавливаются сразу все.
Но! Костылем можно. Создаем пользователя, который имеет доступ только к одной базе:
1 2 3 |
create database dhcp2db; create user 'dhcp'@'localhost' identified by 'password'; grant all on dhcp2db.* to 'dhcp'@'localhost'; |
И достаем из бекапа базы, под этим пользователем, сказав предварительно MySQL, игнорировать все ошибки (Access denied for user)
1 |
gunzip < 2017-12-10.gz | mysql -f -udhcp -pdhcp dhcp2db |