在MYSQL中更改用户名和密码

时间:2016-01-04 13:02:05

标签: mysql

我尝试更改MySQL用户名和密码:

mysql> UPDATE mysql.user SET user='myuser', password=PASSWORD('mypassword') WHERE user='root'; 
Query OK, 0 rows affected (0.00 sec) Rows matched: 0 Changed: 0 Warnings: 0

mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)

但是现在mysql不会让我进去,也无法尝试其他任何东西。 :/

3 个答案:

答案 0 :(得分:1)

除非您对MySQL内部有严格的经验,否则在mysql模式中使用MySQL的系统表是不明智的。有关信息,权限存储在several other tables in the mysql schema中,如果您决定手动编辑mysql.user表,则必须级联更新。

根本不建议这样做。

如果要“重命名”用户,则应创建新用户并授予与旧用户相同的权限。您可以利用SHOW GRANTS 命令。它会输出有效的GRANT语句,您可以轻松地为新用户进行调整。

答案 1 :(得分:0)

尝试创建新用户

  1. 创建用户'new_user'@'localhost'通过'密码'识别。

  2. 授予所有特权*。 * TO'new_user'@'localhost';

  3. FLUSH PRIVILEGES;
  4. 更改root用户的密码:

    UPDATE用户SET密码= PASSWORD('YOURNEWPASSWORD')WHERE User ='root'; FLUSH特权;出口;

    更改myuser的密码:

    UPDATE mysql.user SET Password = PASSWORD('YOURNEWPASSWORD')WHERE User ='myuser';

答案 2 :(得分:0)

首先,如果需要,您应该创建一个新用户,而不是重命名为root用户。

此外,如果您有任何其他具有授权权限的管理员用户,则可以由该用户进行连接。

如果您没有任何其他管理员用户且无法以任何方式连接mysql,则需要按照以下步骤解锁root用户。

步骤1:在my.cnf或my.ini文件中添加以下2行。 跳过赠款表 跳过联网

Step2:重启mysql服务。

步骤2:连接没有密码的mysql(只需传递没有用户名和密码的mysql命令),然后通过以下命令再次将用户名更改为root。

UPDATE mysql.user SET user='root' WHERE USER='myuser'; flush privileges;

步骤3:从my.cnf文件中删除新添加的2行并重新启动mysql服务。

步骤4:现在尝试使用以下命令 -

mysql -uroot -p

为myuser传递密码,因为我们刚刚更改了用户名而不是密码。