尝试更改root用户名时,表'DBName.user'不存在

时间:2013-05-27 21:31:57

标签: mysql

我刚刚在Debian 7.0.0上安装了MySQL。

我使用

成功地从其他系统导入了数据库
mysql -u root -p DBName <mysql27May13.dump

然后我使用

成功登录MySQL
mysql -u root -p

然后我使用

成功选择了数据库
use DBName;

另外

show tables;

显示我导入的表格。但是,当我尝试使用

更改root用户名时
update user set user='SomeNewName' where user='root';

我收到错误消息

ERROR 1146 (42S02): Table 'DBName.user' doesn't exist

2 个答案:

答案 0 :(得分:2)

如果您想更改MySQL用户名,请使用RENAME USER

RENAME USER root@localhost TO other_user@localhost

答案 1 :(得分:1)

您要更新的表 - 在这种情况下为user - 不在您的数据库中(我假设在此处称为DBName)。事实上,您需要的数据库简称为mysql

您可以通过以下几种方式解决此问题:

  1. mysql.user而不是user上运行您的更新。
  2. 在您进行更新之前
  3. use mysql
  4. 使用提供的RENAME关键字代替工作,正如@ExplosionPills建议的那样。
  5. 我建议总是采用方法#3进行用户管理,除非你确定你正在尝试做一些内置命令无法处理的事情。机会是,你不是 - 如果你是,你就会知道。