无法重命名 MySQL 的 root 用户

无法重命名 MySQL 的 root 用户

作为安全强化的一部分,我想删除/重命名 mysql 的 root 用户。在尝试时我得到了error mysql.procs_priv doesn't exist. “mysql.procs_priv”的意义是什么? mysql 数据库中是否必须有此表?如果我使用 UPDATE 查询更改用户名(看起来用户是一个与数据库中任何其他表一样的表)是否有任何副作用?

mysql> RENAME USER root TO newroot;
ERROR 1146 (42S02): Table 'mysql.procs_priv' doesn't exist
mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv    | 
| db              | 
| func            | 
| host            | 
| tables_priv     | 
| user            | 
+-----------------+
6 rows in set (0.00 sec)

mysql> 

答案1

要将 mysqlroot用户重命名为newroot,请按照以下步骤操作。我这里测试过!

  1. 首先使用 root 用户身份登录mysql -u root -p
  2. grant all privileges on *.* to 'tempuser'@'localhost' IDENTIFIED BY 'somepass';
  3. flush privileges;
  4. quit
  5. 重新登录如下tempusermysql -u tempuser -psomepass
  6. update mysql.user set user='newroot' where user = 'root';
  7. quit
  8. 重新登录mysql -u newroot -p并使用roots 的原始密码。

相关内容