作为安全强化的一部分,我想删除/重命名 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
,请按照以下步骤操作。我这里测试过!
- 首先使用 root 用户身份登录
mysql -u root -p
grant all privileges on *.* to 'tempuser'@'localhost' IDENTIFIED BY 'somepass';
flush privileges;
quit
- 重新登录如下
tempuser
:mysql -u tempuser -psomepass
update mysql.user set user='newroot' where user = 'root';
quit
- 重新登录
mysql -u newroot -p
并使用root
s 的原始密码。