无法从远程主机访问MySQL

时间:2018-03-02 09:00:17

标签: mysql ubuntu-16.04

我一直在关注一些文档和答案,试图破解这个。

方案 我想为一个特定用户打开我的数据库以获取世界各地的任何连接。为了论证,我们将这个用户称为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特权命令:

FLUSH PRIVILEGES;

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

bind-address        = 0.0.0.0

然后重新启动MySQL服务。

我可以在localhost上与这个用户连接并完成我希望能够做的所有事情,但如果我从远程主机连接,我会收到以下错误(来自TOAD数据点): 无法连接到任何指定的MySQL主机。

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

netstat -tupln | grep mysql

Output from PUTTY

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

出于安全原因,

服务器IP地址。

对此的任何帮助将不胜感激。 感谢

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

Ubuntu设置的所有内容都是绝对正确的,因为服务器主机1和1的防火墙与我在Ubuntu实例上安装的防火墙是分开的。

一旦我更改了1& 1防火墙上的规则,一切都按预期工作。

感谢大家的帮助。