代码之家  ›  专栏  ›  技术社区  ›  James

无法从远程主机访问MySQL

  •  1
  • James  · 技术社区  · 8 年前

    我一直在跟踪一些文件和答案,试图破解这个问题。

    脚本 我想为世界各地的任何连接的特定用户打开我的数据库。为了参数起见,我们将此用户称为user1。

    我使用以下命令为localhost和“%”创建了此用户:

    CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password';
    CREATE USER 'user1'@'%' IDENTIFIED BY 'password';
    

    然后,我授予此用户仅连接到1个数据库的权限:

    GRANT ALL ON database.* TO 'user1'@'localhost';
    GRANT ALL ON database.* TO 'user1'@'%';
    

    然后是flush privileges命令:

    FLUSH PRIVILEGES;
    

    我进入了/etc/mysql/mysql。conf.d/mysqld。cnf文件,并尝试添加和删除以下行:

    bind-address        = 0.0.0.0
    

    然后重新启动MySQL服务。

    我可以与此用户在本地主机上连接,并执行我希望能够执行的所有操作,但如果我从远程主机连接,则会出现以下错误(来自TOAD数据点): 无法连接到任何指定的MySQL主机。

    这是运行以下命令的输出:

    netstat -tupln | grep mysql
    

    Output from PUTTY

    根据远程Windows计算机的请求运行nmap命令的输出(出于安全原因,我删除了MySQL主机) nmap output


    出于安全原因,服务器IP地址。

    在此方面的任何帮助都将不胜感激。 谢谢

    2 回复  |  直到 8 年前
        1
  •  0
  •   BlackBrain    8 年前

    您必须打开MySQL正在您的计算机上侦听的端口。默认端口为3306。您应该在此端口上接受传入的TCP连接。 或者您可以禁用不推荐的防火墙。

        2
  •  0
  •   James    8 年前

    Ubuntu安装程序的一切都是完全正确的。之所以不能正常工作,仅仅是因为服务器主机1&我有自己的防火墙,与我在Ubuntu实例上安装的防火墙分开。

    一旦我更改了1&上的规则;1防火墙一切正常。

    谢谢大家的帮助。