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

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

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

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


当前回答

如果您有WAMP服务器+Windows 10,并且正在使用它进行开发,请右键单击WAMP图标=>WAMP设置=>选中允许虚拟主机而不是127*

其他回答

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

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

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

    bind-address            = 0.0.0.0

以root终端身份登录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

消息“主机”“xxx.xx.xxx.xxx”“不允许连接到此MySQL服务器”是MySQL服务器对MySQL客户端的答复。注意它如何返回IP地址而不是主机名。

如果您试图连接mysql-h<hostname>-u<someone>-p,并且它返回带有IP地址的消息,则mysql服务器无法在客户端上执行反向查找。这很关键,因为这就是它将MySQL客户端映射到授权的方式。

确保可以从MySQL服务器执行nslookup<mysqlclient>。如果这不起作用,那么DNS服务器中就没有条目。或者,您可以在MySQL服务器的HOSTS文件中输入一个条目(<ipaddress><fullyqualifiedhostname><hostname><-这里的顺序可能很重要)。

我的服务器主机文件中的一个条目允许反向查找MySQL客户端,解决了这个问题。

我的错误消息类似,说“主机XXX不允许连接到此MySQL服务器”,即使我使用的是root。以下是如何确保root用户具有正确的权限。

我的设置:

Ubuntu 14.04 LTSMySQL v.5.37

解决方案

打开etc/mysql/my.cnf下的文件检查:端口(默认为端口=3306)绑定地址(默认情况下,这是绑定地址=127.0.0.1;如果您想向所有人打开,那么只需注释掉这一行。例如,我会说实际服务器在10.1.1.7上)现在在您的实际服务器上访问MySQL数据库(假设您的远程地址是123.123.123.123,端口3306为用户根,我想更改数据库“数据输入”的权限。请记住将IP地址、端口和数据库名称更改为您的设置)mysql-u根-p输入密码:<输入密码>mysql>GRANT ALL ON*.*to root@'123.123.123.123'IDENTIFIED BY'put your password';mysql>FLUSH特权;mysql>退出sudo服务mysqld重启现在您应该能够远程连接到数据库。例如,我使用MySQL Workbench并输入“主机名:10.1.1.7”、“端口:3306”、“用户名:root”

嗯,上面的答案对我来说没有任何作用。经过大量研究,我找到了一个解决方案。虽然我可能会迟到,但这可能会在未来帮助其他人。

从终端登录SQL server

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

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

快乐编码!!

那么,您可以做的就是打开mysql.cfg文件,然后将Bind地址更改为

绑定地址=127.0.0.1

然后重新启动mysql,您将能够将该服务器连接到此服务器。

看这个,你可以从那个里得到想法。

这是真的溶胶