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;