嗯,这就是我能看到的:
select host, user from mysql.user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | me |
| 127.0.0.1 | root |
| ::1 | root |
| localhost | |
| localhost | debian-sys-maint |
| localhost | root |
| ubuntu | |
| ubuntu | root |
+-----------+------------------+
我以root身份登录,想要更改用户'我'的密码。
SET PASSWORD FOR 'me'@'%' = PASSWORD('letmein');
Query OK, 0 rows affected (0.00 sec)
好吧,我们看不到任何影响行。
至于尝试访问,结果如下:
Access denied for user 'me'@'localhost' (using password: YES)
michael@ubuntu:/var/www/cgi-bin$
所以,它提到了localhost,而不是%。
您能否建议我如何更改“我”的密码并解释%是什么?
答案 0 :(得分:8)
您需要为localhost
设置密码:
SET PASSWORD FOR 'me'@'localhost' = PASSWORD('letmein');
FLUSH PRIVILEGES;
%
表示远程主机可以从任何其他服务器登录MySQL服务器,而localhost表示只能从同一台计算机登录MySQL服务器。
答案 1 :(得分:0)
'%'表示您可以从连接到这些数据库的任何主机登录数据库。如果要从localhost访问数据库,还可以将localhost定义为主机。
更改密码:
SET PASSWORD FOR 'me'@'%' = PASSWORD('letmein');
并且不要忘记执行:
FLUSH PRIVILEGES;
提交您的更改。请查看MySql Account Management.
<强>更新强>
在您的用户表中,我找不到使用host = localhost的用户名,您必须先创建此用户(此处为add user):
Grant all privileges on *.* to me@'localhost' identified by 'letmein';
flush privileges;