首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql用户创建%到主机,只能从远程主机登录

问mysql用户创建%到主机,只能从远程主机登录
EN

Database Administration用户
提问于 2012-01-16 17:53:04
回答 2查看 1.4K关注 0票数 2

使用MySQL v5.1.52

使用以下命令创建mysql用户之后:

代码语言:javascript
复制
create user 'user1'@'%' identified by 'pass1';
grant select on db1.* to 'user1';
flush privileges;

然后在命令行中执行“mysql -uuser1 -p”,然后输入密码,我仍然会得到以下错误:

代码语言:javascript
复制
Enter password:
ERROR 1045 (28000): Access denied for user 'user1'@'localhost' (using password: YES)

但是,当使用上述凭据从远程系统(与-h)连接到上面的服务器时,它可以工作。

为什么我不能在本地使用这个用户登录?

下面是用户/主机输出:

代码语言:javascript
复制
mysql> select User,Host from mysql.user;
+----------------+-----------------+
| User           | Host            |
+----------------+-----------------+
| user1          | %               |
EN

回答 2

Database Administration用户

发布于 2012-01-16 18:09:33

当连接到本地主机时,需要使用套接字而不是端口进行连接。这些赠款需要一个特定的“本地主机”赠款。使用%授予本地连接指定要通过TCP进行连接

代码语言:javascript
复制
mysql -u user -p --proto=TCP

进一步阅读

票数 3
EN

Database Administration用户

发布于 2012-01-16 20:25:26

在MySQL中,'localhost‘和'127.0.0.1’有不同的含义。前者将尝试通过套接字文件连接,后者将通过TCP进行连接。

要连接到使用@% (任何主机)定义的用户,您需要使用@atxdba's应答中的建议使用TCP进行连接。

另一种方法是提供主机'127.0.0.1':

代码语言:javascript
复制
mysql -h127.0.0.1 -uuser -p

mysql命令行还将尝试从用户信任的选项文件的客户端部分读取数据(通常位于/etc/my.cnf中,以及像~/.my.cnf这样的重写)。

因此,如果其中一个文件中有一个像这样的部分:

代码语言:javascript
复制
[client]
host=127.0.0.1

然后mysql将自动尝试通过TCP连接。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/10740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档