Судя по логам, ошибка появилась в 31 версии и была пофикшена в 32
https://bugs.mysql.com/bug.php?id=109685
На 3х проверено. (3 сайта. С разными базами. Для каждого сайта свои системные юзеры и соответственно разные юзеры БД)
И мне кажется речь в мане мускуля не про юзеров базы, а про системных. От их же имени работает php и соответственно запускается mysqldump. (апач в режиме ITK)
Нет, там речь про пользователей Mysql. Они выполняют операции.
Т.е. выходит плагин не виноват..
поэтому я и предлагал пересоздать пользователя в панели ISP для БД, может быть он косячный.
А судя по коду плагина она есть:
private function mysqlDump($exePath)
{
global $wpdb;
require_once(DUPLICATOR_PLUGIN_PATH . 'classes/utilities/class.u.shell.php');
$host = SnapURL::parseUrl(DB_HOST, PHP_URL_HOST);
if (($port = SnapURL::parseUrl(DB_HOST, PHP_URL_PORT)) == false) {
$port = '';
}
$name = DB_NAME;
$mysqlcompat_on = isset($this->Compatible) && strlen($this->Compatible);
//Build command
$cmd = escapeshellarg($exePath);
$cmd .= ' --no-create-db';
$cmd .= ' --single-transaction';
$cmd .= ' --hex-blob';
$cmd .= ' --skip-add-drop-table';
$cmd .= ' --routines';
$cmd .= ' --quote-names';
$cmd .= ' --skip-comments';
$cmd .= ' --skip-set-charset';
$cmd .= ' --skip-triggers';
$cmd .= ' --allow-keywords';
$cmd .= ' --no-tablespaces';
//Compatibility mode
if ($mysqlcompat_on) {
DUP_Log::Info("COMPATIBLE: [{$this->Compatible}]");
$cmd .= " --compatible={$this->Compatible}";
Версия плагина:
Обновлена пару дней назад.
Как один из вариантов, попробовать создать нового пользователя в панели ISP для нужной БД и подключить сайт через него.
Чисто для теста.
Ну запускать плагин должен mysqldump с командой --no-tablespaces
Если такие проблемы, то просто выбрать PHP код и работать через него. Или руками через панель сделать дамп.
Или воспользоваться другим плагином, может быть по умнее.
Релиз MySQL 8.0.21 (2020-07-13) и что за 2,5 года никто не додумался правильно вызывать mysqldump ?
Да я, что-то разработчиков плагина тогда не понял. Кто мешает очищать таблицы через PHP, а загружать потом через mysqldump? Как всегда ЧСВ у кого-то сыграло, мол это плохие разработчики MySQL сделали, а мы то очень важные, мы будем стоять на своём!
Судя по документации, то плагин должен запускаться с командой mysqldump --no-tablespaces
Выдавать PROCESS пользователю это вообще не вариант т.к. оно будет работать на глобальном уровне, а не на уровне БД.