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

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

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

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


当前回答

CPANEL溶液

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

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

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

其他回答

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

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

flush privileges;

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

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

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

转到权限>添加新用户

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

这是为DirectAdmin工作的;

转到您的DirectAdmin。转到MySQL管理。选择数据库。在“访问主机”选项卡下,有一个字段。您应该用xxx.xx.xxx.xx填充此字段。单击添加主机。

已完成。现在,您可以通过your_database_username和your_database密码访问此数据库。太简单了!

简单方法:

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

then

FLUSH PRIVILEGES;

完成!