При попытке восстановить БД из дампа MySQL получил ошибку
ERROR 1064 (42000) at line 22: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘DEFAULT CHARACTER SET latin1 */’ at line 1
Конечно же, дамп был очень большой (свыше 20 GB) и руками вымарать строку не представлялось возможным: ни vi, ни nano такой файл не смогут «прожевать»
Пришлось использовать старый добрый sed
# Строка была такой # CREATE DATABASE /*!32312 IF NOT EXISTS*/ `databasename` /*!40100 DEFAULT CHARACTER SET latin1 */; # Чтобы удалить ее, даем команду sed -i 's/CREATE DATABASE.*;/--/' ./tempo.sql |
Правда, на этом проблема не была завершена. На исходном сервере БД не имела префикс, а на новом — требовалось его использовать. Поэтому пришлось так же заменить databasename на admin_databasename. При попытке восстановления из бекапа ошибка была такой:
ERROR 1044 (42000) at line 22: Access denied for user ‘admin_databasename’@’localhost’ to database ‘databasename’
# Меняем название БД в дампе. sed -i 's/`databasename`/`admin_databasename`;/' ./tempo.sql |
После этой несложной манипуляции дальнейшее восстановление БД из дампа с ключом —default-character-set=utf8 прошло без запинок.
# Восстановление базы из дампа mysql -uadmin_databasename -p admin_databasename --default-character-set=utf8 < tempo.sql |
Напомню в очередной раз, что выделенные серверы выгодно заказывать в компании vps-server.ru