使用MySQL v5.1.52
使用以下命令创建mysql用户之后:
create user 'user1'@'%' identified by 'pass1';
grant select on db1.* to 'user1';
flush privileges;然后在命令行中执行“mysql -uuser1 -p”,然后输入密码,我仍然会得到以下错误:
Enter password:
ERROR 1045 (28000): Access denied for user 'user1'@'localhost' (using password: YES)但是,当使用上述凭据从远程系统(与-h)连接到上面的服务器时,它可以工作。
为什么我不能在本地使用这个用户登录?
下面是用户/主机输出:
mysql> select User,Host from mysql.user;
+----------------+-----------------+
| User | Host |
+----------------+-----------------+
| user1 | % |发布于 2012-01-16 18:09:33
当连接到本地主机时,需要使用套接字而不是端口进行连接。这些赠款需要一个特定的“本地主机”赠款。使用%授予本地连接指定要通过TCP进行连接
mysql -u user -p --proto=TCP发布于 2012-01-16 20:25:26
在MySQL中,'localhost‘和'127.0.0.1’有不同的含义。前者将尝试通过套接字文件连接,后者将通过TCP进行连接。
要连接到使用@% (任何主机)定义的用户,您需要使用@atxdba's应答中的建议使用TCP进行连接。
另一种方法是提供主机'127.0.0.1':
mysql -h127.0.0.1 -uuser -pmysql命令行还将尝试从用户信任的选项文件的客户端部分读取数据(通常位于/etc/my.cnf中,以及像~/.my.cnf这样的重写)。
因此,如果其中一个文件中有一个像这样的部分:
[client]
host=127.0.0.1然后mysql将自动尝试通过TCP连接。
https://dba.stackexchange.com/questions/10740
复制相似问题