最近,我删除了分配给我前任老板的 MySQL 用户帐户。然后,某些数据库功能(例如从他创建的表中删除记录)不起作用,并出现以下错误:
#1449 - There is no '*username*'@'localhost' registered
现在,我添加了一个具有相同名称(和不同密码)的新用户,它工作正常,没有错误。但是,有没有办法在没有占位符用户帐户的情况下解决这个问题?
最近,我删除了分配给我前任老板的 MySQL 用户帐户。然后,某些数据库功能(例如从他创建的表中删除记录)不起作用,并出现以下错误:
#1449 - There is no '*username*'@'localhost' registered
现在,我添加了一个具有相同名称(和不同密码)的新用户,它工作正常,没有错误。但是,有没有办法在没有占位符用户帐户的情况下解决这个问题?
尝试替换函数的 DEFINER
首先登录到mysqlroot@localhost
然后,替换root@localhost
为 DEFINER
UPDATE mysql.proc SET definer='root@localhost'
WHERE definer = '*username*@localhost';
事实上,你可以这样查看所有的 DEFINER:
SELECT COUNT(1) DefinerCount,definer,type
FROM mysql.proc GROUP BY definer,type;
这将向您显示每个用户拥有多少功能和过程。如果任何其他报告的 DEFINER 不再存在或无效,您可以root@localhost
继承它们。
试试看 !!!
我必须删除并重新添加受影响表的触发器。(我使用 phpMyAdmin 来执行此操作)。