我一直在跟踪一些文档和答案,试图破解这个问题。
场景 我想为世界各地的任何连接的特定用户打开我的数据库。为了便于讨论,我们将此用户称为 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
根据我的远程 Windows 机器的请求运行 nmap 命令的输出(出于安全原因,我已经删除了 MySQL 主机)
出于安全原因,服务器 IP 地址。
如有任何帮助,我们将不胜感激。 谢谢
最佳答案
您必须打开 MySQL 在您的计算机上监听的端口。默认端口为 3306。您应该接受此端口上的传入 TCP 连接。 或者您可以禁用不推荐的防火墙。
关于mysql - 无法从远程主机访问 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49065759/