MySQL: SQL Error [1449] [HY000]: The user specified as a definer

После перемещения базы данных MySQL/MariaDB между серверами MySQL/MariaDB мы наблюдаем следующую ошибку (например, после развёртывания БД рабочего проекта локально):

SQL Error [1449] [HY000]: The user specified as a definer ('<какой_либо_юзер>'@'localhost') does not exist

Решение #1:

Изменить файл дампа перед импортом. Найти предыдущую комбинацию имени пользователя и имени хоста в операторах процедуры создания и заменить новым именем пользователя и именем хоста. Такой способ подходит только небольшим БД.

Решение #2:

Создать отсутствующего пользователя и предоставить ему все права:

CREATE USER IF NOT EXISTS 'ваш_юзер'@'%' IDENTIFIED BY 'пароль';
FLUSH PRIVILEGES;

# Привелегии давать стоит только на определённые БД, если их несколько на сервере баз данных
# (database.*)
# *.* - так вполне приемлемо в докере
GRANT ALL PRIVILEGES ON *.* TO 'ваш_юзер'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Следующая заметка

Начислить/Выделить НДС
Закрыть