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

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

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

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


当前回答

这里的大多数答案显示您使用两个主机值创建用户:一个用于localhost,一个用于%。

请注意,除了内置的localhost用户(如root用户),您不需要这样做。如果您只是想创建一个可以从任何地方登录的新用户,可以使用

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

它会工作得很好。(正如其他人所提到的,向来自任何域的用户授予管理权限是一个可怕的想法。)

其他回答

如果您有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

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

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

转到权限>添加新用户

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

只需使用MySql的GUI工具(SQLyog)提供的界面:

单击用户管理器:

现在,如果您想授予任何其他远程PC的访问权限,只需确保,正如下图所示,主机字段值为%(这是通配符)

只需从主机控制面板找到更好的方法(我在这里使用的是DirectAdmin)

只需转到控制面板中的目标服务器DB,在我的情况下:MySQL管理->选择您的数据库->您会发现:“访问主机”,只需在此处添加远程主机并立即工作即可!

我想在其他C面板上也有类似的选项,比如plesk等。。

我希望这对你也有帮助。