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

m2xkgtsf  于 2021-06-18  发布在  Mysql
关注(0)|答案(26)|浏览(383)

这应该非常简单,但我不能让它为我的生活工作。
我只是想远程连接到我的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”的条目完全相同。
我束手无策,不知道该怎么办。欢迎提出任何意见。

xam8gpfp

xam8gpfp16#

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

ntjbwcob

ntjbwcob17#

您需要从任何主机名授予用户访问权限。
这是如何从phpmyadmin添加新特权的
转到权限>添加新用户

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

jgovgodb

jgovgodb18#

只需使用mysql的gui工具(sqlyog)提供的接口:
单击用户管理器:

现在,如果您想为任何其他远程pc授予访问权限,只需确保,就像下面的图片一样,主机字段值是%(这是通配符)

pkmbmrz7

pkmbmrz719#

简单方法:

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

然后

FLUSH PRIVILEGES;

完成!

syqv5f0l

syqv5f0l20#

问题: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帐户也可以工作。

c7rzv4ha

c7rzv4ha21#

一个人必须创造一个 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

qlvxas9a

qlvxas9a22#

这适用于任何未来的远程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
aor9mmx1

aor9mmx123#

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

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

5fjcxozz

5fjcxozz24#

如果手动修改授权表(使用insert、update等),则应执行 FLUSH PRIVILEGES 语句来通知服务器重新加载授予表。
ps:我不建议允许任何主机为任何用户连接(特别是不允许 root 使用)。如果您将mysql用于客户机/服务器应用程序,请选择子网地址。如果将mysql与web服务器或应用程序服务器一起使用,请使用特定的IP。

lndjwyie

lndjwyie25#

如果您试图在没有定义connectionstring的情况下执行mysql查询,则会出现此错误。
可能您忘记了在执行之前定义连接字符串。你检查过这个了吗(抱歉英语不好)

eqzww0vc

eqzww0vc26#

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

相关问题