这应该很简单,但我不能让它为我的一生工作。我只是想远程连接到我的MySQL服务器。

连接方式:mysql-u根-h本地主机-p工作正常,但尝试:mysql-uroot-h'这里的任何ip地址'-p失败,错误为:错误1130(00000):主机“xxx.xx.xxx.xxx”不允许连接到此MySQL服务器

在mysql.user表中,主机为“localhost”的用户“root”的条目与主机为“%”的用户完全相同。

我束手无策,不知道该怎么办。欢迎提出任何想法。


当前回答

可能是安全预防措施。您可以尝试添加新的管理员帐户:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;

尽管正如Pascal和其他人所指出的那样,让一个拥有这种访问权限的用户访问任何IP都不是一个好主意。如果您需要管理用户,请使用root,并将其保留在localhost上。对于任何其他操作,请精确指定所需的权限并限制用户的可访问性,正如Pascal在下面所建议的那样。

编辑:

从MySQL常见问题解答:

如果你不明白为什么访问被拒绝,从用户中删除表中包含主机的所有条目包含通配符的值(条目包含“%”或“_”字符)。A.非常常见的错误是插入新的主机=“%”且用户=“some_User”,认为这允许您将localhost指定为从同一台计算机连接。这个这不起作用的原因是默认权限包括带有Host='localhost'和用户=“”。因为该条目具有主机值'localhost',大于特定于“%”,它用于新条目的首选项从本地主机连接!正确的过程是插入第二个条目主机=“本地主机”且用户=“some_User”,或删除带有Host='localhost'和用户=“”。在删除条目之后,记住要发布FLUSH特权语句重新加载授权表。另请参见第5.4.4节“通道”控制,第1阶段:连接验证”。

其他回答

只需执行以下步骤:

连接到MySQL(通过localhost)mysql-uurot-p如果MySQL服务器在Kubernetes(K8s)中运行并通过NodePort访问kubectl exec-it[pod name]--/bin/bashmysql-uurot-p

创建用户CREATE USER“USER”@“%”IDENTIFIED BY“password”;授予权限使用GRANT OPTION将*.*上的所有特权授予'user'@'%';刷新权限刷新特权;

如果这是最近的mysql安装,那么在更改任何其他内容之前,只需执行以下命令,然后重试:

flush privileges;

这就为我修复了Ubuntu 16.04、mysql 5.7.20上的问题。YMMV。

问题:root@localhost无法连接到openSUSE 42.2-1.150.x86_64上新安装的mysql社区服务器。Mysql拒绝连接-期间。

解决方案:

$ ls -l /var/lib/mysql/mysql/user.*
-rw-rw---- 1 mysql mysql     0 Apr 29 19:44 /var/lib/mysql/mysql/user.MYD
-rw-rw---- 1 mysql mysql  1024 Apr 29 19:44 /var/lib/mysql/mysql/user.MYI
-rw-rw---- 1 mysql mysql 10684 Apr 29 19:44 /var/lib/mysql/mysql/user.frm

文件user.MYD的大小为0(真的?!)。我从另一个工作系统复制了所有3个文件。

$ /usr/sbin/rcmysql stop
$ cd /var/lib/mysql/mysql/
$ scp root@othersytem:/var/lib/mysql/mysql/user.* ./
$ /usr/sbin/rcmysql start
$ cd -
$ mysql -u root -p

我能够登录。然后,这只是重新应用所有模式特权的问题。此外,如果禁用了IPv6,请重新启用它,以便root@::1帐户也可以工作。

您需要从任何主机名授予用户访问权限。

这是如何从phpmyadmin添加新权限的

转到权限>添加新用户

为所需用户名选择任意主机

CPANEL溶液

转到Cpanel,查找远程MySQL。在输入字段中添加IP:

主机(允许使用%通配符)

注释以记住IP是什么。这就是对我来说的。