MySQL 错误 1449:指定为定义者的用户不存在
从以下位置导入视图、触发器或过程时通常会出现此错误另一个数据库,其中对象的创建者不再
原因:
解决方案:
选项 1:更改定义器
对于视图:
使用以下 SQL 生成 ALTER 语句:
SELECT CONCAT("ALTER DEFINER=youruser@host VIEW ", table_name, " AS ", view_definition, ";") FROM information_schema.views WHERE table_schema='your-database-name';
用于存储过程:
使用以下语法,将“youruser”替换为所需的用户:
UPDATE `mysql`.`proc` p SET definer = 'user@%' WHERE definer='root@%'
选项 2:创建缺失的用户
使用适当的方法创建缺失的用户权限:
对于本地开发服务器:
GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password'; FLUSH PRIVILEGES;
对于MariaDB:
GRANT ALL PRIVILEGES ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password'; FLUSH PRIVILEGES;
以上是如何解决 MySQL 错误 1449:'指定为定义者的用户不存在”?的详细内容。更多信息请关注PHP中文网其他相关文章!