Приветствую специалистов по окружению.
Когда на сервере выполняю (одно из):
$ mysqldump -u USER -pPASSWORD DATABASE > dump.sql
$ drush sql-dump > dump.sql
$ drush sql-dump > dump.sql
пишет:
> mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces
Это что значит? Файл дампа при этом создается.
Комментарии
https://dba.stackexchange.com/questions/271981/access-denied-you-need-at...
Да, я натыкался на подобные инструкции, где сказано дампить с параметром --no-tablespaces, но так и не понял что это значит. Можно кратко пояснить?
я подключился к серверу через терминал по ssh и использовал следующий запрос:
mysqldump --no-tablespaces -p --user=имя_пользователя_бд имя_бд название_таблицы > название_таблицы.sql;
у меня сработало!
С этим ключом будут пропускаться вот эти команды: https://dev.mysql.com/doc/refman/5.7/en/create-tablespace.htm и https://dev.mysql.com/doc/refman/5.7/en/create-logfile-group.html
Обычно, это можно безболезненно пропустить.
А почему при дампе БД на одном сайте это сообщение всплывает, на другом нет? На одном и том же сервере.
Посмотри какие права у одного и другого пользователя, под которыми ты делаешь дампы.
На обоих одинаково:
mysql> SHOW GRANTS FOR 'username'@'localhost';
выдает
| Grants for username@localhost |
+----------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'username'@'localhost' |
| GRANT ALL PRIVILEGES ON `dbname`.* TO 'username'@'localhost' |
+----------------------------------------------------------------------------+
Тогда может быть созданы всё-же tablespace, или одна из баз создана при innodb_file_per_table, а вторая нет.
Я так понимаю, что "Access denied" можно игнорировать?
Советую добавить ключик, а не игнорировать, а то дамп может оказаться не полным.
А можно что-то сделать чтоб без ключика?
Добавить разрешение PROCESS пользователю.
А как проверить: есть ли у меня разрешения добавлять разрешения?
https://dev.mysql.com/doc/refman/8.0/en/show-grants.html
Разрешения позволяет давать: "WITH GRANT OPTION" на *.*
Очень странно, но с недавнего времени окончание --no-tablespaces пришлось добавлять еще на нескольких хостингах.
Можно ли в этом случае использовать drush для создания дампа БД. И если да то как?