我一直在关注一些文档和答案,试图破解这个。
方案 我想为一个特定用户打开我的数据库以获取世界各地的任何连接。为了论证,我们将这个用户称为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
从我的远程Windows机器请求运行nmap命令的输出(出于安全原因我删除了MySQL主机)
出于安全原因,服务器IP地址。
对此的任何帮助将不胜感激。 感谢
答案 0 :(得分:0)
您必须打开MySQL正在您的计算机上侦听的端口。默认端口为3306.您应该接受此端口上的传入TCP连接。 或者您可以禁用不推荐的防火墙。
答案 1 :(得分:0)
Ubuntu设置的所有内容都是绝对正确的,因为服务器主机1和1的防火墙与我在Ubuntu实例上安装的防火墙是分开的。
一旦我更改了1& 1防火墙上的规则,一切都按预期工作。
感谢大家的帮助。