2012-07-19 46 views
2

最近,我删除了一个分配给我的前老板的MySQL用户帐户。然后,像他做不工作,给下面的错误表中删除记录一些数据库的功能:MySQL中的错误1449 - 替代解决方案?

#1449 - There is no '*username*'@'localhost' registered 

现在,我添加了相同的名称(和DIFF密码。)的新用户,它工作正常没有错误。但是,有没有办法解决这个没有占位符的用户帐户?

+0

你是怎么删除他的用户的?从我记忆中,有多种方式可以删除MySQL中的用户,并不是所有的方法都是同样有效的。 – 2012-07-19 17:50:36

+0

直接从mysql表中的“users”表通过phpMyAdmin。有没有更好的办法? – 2012-07-19 18:23:12

+1

如果我没有记错的话,我通常会使用'DROP USER'。 http://dev.mysql.com/doc/refman/5.0/en/drop-user.html – 2012-07-19 19:05:52

回答

0

我必须为受影响的表格删除并重新添加triggers。 (我用phpMyAdmin来做到这一点)。

5

尝试更换DEFINER功能

首先登录MySQL作为[email protected]

然后,替换[email protected]作为DEFINER

UPDATE mysql.proc SET definer='[email protected]' 
WHERE definer = '*username*@localhost'; 

事实上,你可以看一下所有类似的定义者:

SELECT COUNT(1) DefinerCount,definer,type 
FROM mysql.proc GROUP BY definer,type; 

这将显示每个用户拥有多少个功能和程序。如果其他报告的DEFINER不再存在或无效,可以让[email protected]继承它们。

试试吧!

+0

查询工作,但没有行受到影响。我以root身份登录(并且明显地用真正的用户名替换了***用户名:))。有任何想法吗? – 2012-07-20 18:02:09