不允许主机“.xx..”连接到此mysql服务器

y3bcpkx1  于 2021-06-20  发布在  Mysql
关注(0)|答案(26)|浏览(376)

这应该非常简单,但我不能让它为我的生活工作。
我只是想远程连接到我的mysql服务器。
连接方式

mysql -u root -h localhost -p

很好,但是努力

mysql -u root -h 'any ip address here' -p

失败并出现错误

ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server

mysql.user 表中,主机为“localhost”的用户“root”的条目与主机为“%”的用户“root”的条目完全相同。
我束手无策,不知道该怎么办。欢迎提出任何意见。

3npbholx

3npbholx1#

问题:root@localhost 无法连接到opensuse 42.2-1.150.x86\u 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帐户也可以工作。

hvvq6cgz

hvvq6cgz2#

你可以打开mysql.cfg文件,把绑定地址改成这个
绑定地址=127.0.0.1
然后重新启动mysql,您就可以将该服务器连接到此服务器。
看这个,你可以从那个想法。
这是真正的Solr

qlvxas9a

qlvxas9a3#

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

此错误是因为根目录没有密码,而这可能是在您尝试从外部连接时发生的。

ego6inou

ego6inou4#

只要从你的主机控制面板找到一个更好的方法(我在这里使用directadmin)
只需在您的控制面板中转到目标服务器数据库,在我的例子中:mysql管理->选择您的数据库->您将发现:“访问主机”,只需在这里添加您的远程主机和它的工作现在!

我想在其他c面板上也有类似的选择,比如plesk等等。。
我希望这对你也有帮助。

jslywgbw

jslywgbw5#

我也面临着同样的问题,它解决了我在2分钟我只是白名单ip通过cpanel
假设您正试图从服务器a连接服务器b的数据库。进入serverbcpanel->remotemysql->输入服务器的ip地址,就这样。

wribegjk

wribegjk6#

这里的大多数答案都显示了创建具有两个主机值的用户:一个用于 localhost ,和一个 % .
请注意,除了像root这样的内置localhost用户之外,您不需要这样做。如果您只想创建一个可以从任何地方登录的新用户,您可以使用

CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT <whatever privileges are appropriate> ON <relevant tables> TO myuser;

它会很好的工作(正如其他人所提到的,将管理权限授予任何域的用户是一个糟糕的想法。)

rnmwe5a2

rnmwe5a27#

简单方法:

Grant All Privileges ON *.* to 'USER_NAME'@'%' Identified By 'YOUR_PASSWORD';

然后

FLUSH PRIVILEGES;

完成!

zazmityj

zazmityj8#

嗯,上面的答案对我来说都不管用。经过大量研究,我找到了解决办法。虽然我可能会迟到,但这可能会在将来帮助别人。
从终端登录到sql server

mysql -u root -p
 -- root password
GRANT ALL ON *.* to root@'XX.XXX.XXX.XX' IDENTIFIED BY 'password';

这应该可以解决权限问题。


快乐编码!!

deikduxw

deikduxw9#

一个人必须创造一个 new MySQL User 并按以下方式分配权限 Query prompt 通过phpmyadmin或命令提示符:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

完成所有四个查询后,它应该与 username / password

iklwldmw

iklwldmw10#

信息 *Host ''.xx..'' is not allowed to connect to this MySQL server 是mysql服务器对mysql客户端的回复。注意它是如何返回ip地址而不是主机名的。
如果你想和 mysql -h<hostname> -u<somebody> -p 并且它返回这个带有ip地址的消息,那么mysql服务器就不能在客户机上进行反向查找。这一点很关键,因为这就是mysql客户机Map到授权的方式。
确保你能做一个 nslookup <mysqlclient> 从mysql服务器。如果这不起作用,那么dns服务器中就没有条目。或者,您可以在mysql服务器的hosts文件中输入一个条目( <ipaddress> <fullyqualifiedhostname> <hostname> <-这里的顺序可能很重要)。
我的服务器的主机文件中的一个条目允许反向查找mysql客户机,解决了这个问题。

fhity93d

fhity93d11#

这个答案可能会帮助某人。。。
所有这些答案都没用,然后我意识到我忘了检查一个关键的东西。。端口:)
我有mysql运行在一个docker容器中运行在另一个端口上。我指着3306端口上的主机,上面运行着一个mysql服务器。我的容器暴露端口33060上的服务器。所以一直以来,我看错了服务器!哦!

fcipmucu

fcipmucu12#

这里的所有答案在我的情况下都不起作用,所以我认为这可能会在将来帮助其他用户。这在我们的代码中也是一个问题,不仅仅是

snz8szmq

snz8szmq13#

这适用于任何未来的远程mysql连接!

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

导航到以bind address指令开头的行。应该是这样的:

bind-address            = 0.0.0.0

以根终端身份登录mysql

mysql -u root -p
    -- root password

    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

    GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

    CREATE USER 'username'@'%' IDENTIFIED BY 'password';

    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

    FLUSH PRIVILEGES;

    EXIT;

最后,使用以下命令授予该计算机远程连接到数据库的独占权限。

sudo ufw allow from remote_IP_address to any port 3306
ippsafx7

ippsafx714#

为directadmin工作;
去你的房间 DirectAdmin .
去你的房间 MySQL Management .
选择您的 database .
在你的 Accesse Host tab,有一个字段。你应该用 .xx..xx .
点击 Add Host .
完成了。现在您可以通过 your_database_username & your_database_password .
太简单了!

qij5mzcb

qij5mzcb15#

如果您有wamp server+windows10并且正在使用它进行开发,那么右键单击wamp icon=> Wamp Settings => Check Allow Virtual Hosts other than 127*

相关问题