mysql匿名账号与root账户密码修改方法
要想为匿名账户指定密码,可以使用SET PASSWORD或UPDATE。
在两种情况中,一定要使用PASSWORD()函数为密码加密。
在Unix中使用PASSWORD的方法:
shell> mysql -u root mysql> SET PASSWORD FOR ''@'localhost' = PASSWORD('newpwd'); mysql> SET PASSWORD FOR ''@'host_name' = PASSWORD('newpwd');
用服务器主机名替换第二个SET PASSWORD语句中的host_name。
这是指定的user表中的root non-localhost记录的Host列名。
如果你不知道是哪个主机名,在SET PASSWORD之前执行下面的语句:
mysql> SELECT Host, User FROM mysql.user;
查找在User列有root和在Host列没有localhost的记录。然后在第二个SET PASSWORD语句中使用该Host值。
为匿名账户指定密码的另一种方法是使用UPDATE直接修改用户表。
用root连接服务器,运行UPDATE语句为相应user表记录的Password列指定一个值。
下面的UPDATE语句同时为两个匿名账户指定密码:
shell> mysql -u root mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE User = ''; mysql> FLUSH PRIVILEGES;
在user表中直接使用UPDATE更新密码后,必须让服务器用FLUSH PRIVILEGES重新读授权表。否则,重新启动服务器前,不会使用更改。
删除匿名账户,操作方法是:
shell> mysql -u root mysql> DELETE FROM mysql.user WHERE User = ''; mysql> FLUSH PRIVILEGES;
为root账户指定密码可以使用下面的UPDATE语句指定密码:
shell> mysql -u root mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE User = 'root'; mysql> FLUSH PRIVILEGES; mysql> exit
技术是孤独的,但行走于技术之间又是无限的宽广!