不允许MySQL主机'::1'或'127.0.0.1'连接到此MySQL服务器

nfeuvbwi  于 2023-01-12  发布在  Mysql
关注(0)|答案(6)|浏览(315)

我有一个奇怪的问题上的Web服务器(Windows Server 2012)与MySQL 5.7.16.我不能再连接到MySQL服务器,我不知道为什么.
如果我输入mysql -uroot -ppassword会出现错误

ERROR 1130 <HY000>: Host '::1' is not allowed to connect to this MySQL server or
ERROR 1130 <HY000>: Host '127.0.0.1' is not allowed to connect to this MySQL server

我尝试使用另一个具有所有权限的用户,但我发现在host中只有localhost(而不是127.0.0.1或::1)
我怎么能用root@localhost而不是root@www.example.com登录127.0.0.1?这很令人沮丧...每个帐户都试图使用@127.0.0.1或@::1,但主机中只存在localhost,我无法更改它。
如果我输入mysql -uroot -ppassword,我会看到
ERROR 1130 <HY000>: Host '127.0.0.1' is not allowed to connect to this MySQL server
如果我输入mysql -uroot -ppassword -h本地主机或其他任何内容,也是一样的

px9o7tmv

px9o7tmv1#

好的我修好了......
我在my.ini中评论了“skip_name_resolve”,一切都恢复了正常。我真的不知道为什么,因为这个记录昨天也在my.ini中。上周。上个月。

uyto3xhc

uyto3xhc2#

变量skip_name_resolve提供了更好的性能,因为服务器不会尝试解析连接客户端的名称或每次在主机名缓存中查找它们(甚至解析/搜索 localhost),但手册指出config也限制了 @localhost 连接。解决方案是使用@ www.example.com复制 @localhost 用户127.0.0.1,如下所示:

CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password';
CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';
FLUSH PRIVILEGES;

其中::1是IPv6寻址的 localhost。这样,我们将根帐户和本地帐户限制在本地服务器上。使用“%”会向全世界开放潜在客户端,我们不希望出现这种情况。禁用skip_name_resolve还要求服务器具有可访问的快速DNS解析程序,以最大限度地减少延迟。
我注意到我可以连接到一个本地的 phpmyadmin,即使用户有@localhost;这是因为 phpmyadmin 通过本地unix套接字连接,这是一种用于进程间通信的特殊类型的文件,并且不需要联网。

**EDIT:**如@弗朗西斯科R所述,新的root用户还应具有对所有数据库的完全访问权限,方法是发出以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'::1'
FLUSH PRIVILEGES
y0u0uwnf

y0u0uwnf3#

我有同样的消息后,一个新的安装与无安装压缩和解决它如下.也许这可能是一个解决方案,你的问题了:
1.停止MySQL服务器或服务。
1.使用管理员权限打开命令提示符窗口,然后转到MySQL安装目录中的bin文件夹。
1.使用skip-grants-table启动MySQL,不要忘记您的配置文件:
mysqld --默认值文件=[文件名] --跳过授权表
1.打开另一个命令提示符窗口并再次转到bin文件夹。
1.现在您可以登录:
mysql -u根目录-p
1.向用户显示:
SELECT用户,主机FROM mysql.user;
1.验证是否存在主机为“localhost”的“root”。
1.更改主机:
更新mysql.user设置主机=' %',其中用户='根';
1.退出mysql程序并关闭命令提示符窗口。
1.在另一个命令提示符窗口中键入Ctrl-C以停止服务器,然后关闭命令提示符窗口。
1.像往常一样启动MySQL,并验证是否可以登录。

643ylb08

643ylb084#

确保在创建用户时已指定%作为主机名,否则用户将只能从本地主机进行连接。

pod7payv

pod7payv5#

我来到这里寻找一个解决方案,使用本地飞轮为wordpress开发同样的问题,但是,在linux机器。
如果有人面临同样的问题,这里列出的解决方案是有效的。
只需在Local创建的文件树下的文件conf/mysql/my.cnf.hbs中注解skip_name_resolve
谢谢!

azpvetkf

azpvetkf6#

看起来您需要修改主机文件。C:\Windows\System32\Drivers\etc\hosts
只需添加该行并保存它,(为了能够编辑和保存您可能需要以管理员身份打开它)
127.0.0.1 主机

相关问题