gpt4 book ai didi

MySQL:授予用户从任何计算机访问模式的权限

转载 作者:行者123 更新时间:2023-11-30 00:06:00 25 4
gpt4 key购买 nike

这个问题可能已被问过很多次,但我找不到解决我的问题的答案。我想创建一个可以从任何计算机连接到我的机器上的 MySQL (5.5.35) 的用户,并且拥有除 GRANT 之外的模式的所有权限。

所以我开始:

$ mysql -u root -p 

然后

create user 'dbuser'@'%' identified by 'password';
grant usage on *.* TO 'dbuser'@'%';
grant all on testdb to 'dbuser'@'%';
grant all on testdb.* to 'dbuser'@'%';
flush privileges;
quit

但令我惊讶的是,当我尝试使用以下方式连接到数据库时:

$ mysql -u dbuser -p testdb

我收到以下错误消息:

ERROR 1045 (28000): Access denied for user 'dbuser'@'localhost' 
(using password: YES)

我对密码进行了三次检查。我做错了什么?

干杯,约翰

最佳答案

这里的线索是错误消息中的@localhost

摘自 MySQL 文档:

http://dev.mysql.com/doc/refman/5.5/en/connecting.html

在 Unix 上,MySQL 程序会特别对待主机名 localhost,与其他基于网络的程序相比,其方式可能与您期望的不同。对于到本地主机的连接,MySQL 程序尝试使用 Unix 套接字文件连接到本地服务器。即使使用 --port 或 -P 选项来指定端口号,也会发生这种情况。要确保客户端与本地服务器建立 TCP/IP 连接,请使用 --host 或 -h 指定主机名值 127.0.0.1,或者本地服务器的 IP 地址或名称。您还可以使用 --protocol=TCP 选项显式指定连接协议(protocol),甚至对于本地主机也是如此。

<小时/>

修复方法是创建用户'dbuser'@'localhost'并授予权限,

或者通过 TCP/IP 堆栈强制连接,例如:

mysql -h 127.0.0.1 -u dbuser -p testdb
^^^^^^^^^^^^

关于MySQL:授予用户从任何计算机访问模式的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24542691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com