mysql - 无法从远程主机访问 MySQL

标签 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 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 地址。

如有任何帮助,我们将不胜感激。 谢谢

最佳答案

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

关于mysql - 无法从远程主机访问 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49065759/

相关文章:

linux - firebird3.0.service 的作业失败,因为超出了配置的资源限制

ubuntu - 如何创建 crontab 作业以在服务器重启时启动 Monero 矿工?

ubuntu-16.04 - 通过 systemd 管理 ZFS 清理

mysql 查询返回两个单独的数组

mysql - 使用求和函数更新表时组函数的使用无效

c# - 以编程方式增加mysql中的max_allowable_packet

linux - 我怎样才能让 pyinstaller 在 Ubuntu 上工作?

mysql - 比较序列化字符串中的日期 MySQL 查询

javascript - 仅使用 Electron (Atom shell) 和 PHP+mysql 服务器的身份验证表单

ubuntu - 在 16.04 LTS 上安装 Docker