无法从 Google Cloud/Compute 实例访问 MariaDB

无法从 Google Cloud/Compute 实例访问 MariaDB

我似乎无法远程访问在 Google Cloud/Compute 实例上运行的 Mysql。我正在尝试进行普通安装。

  1. 我使用默认的 Debian 创建了实例。

  2. 我使用 apt-get 安装 mysql,奇怪的是,它安装的却是 MariaDB。很好。

  3. 我运行了 sudo mysql mysql_secure_installation 并按照提示操作。奇怪的是,它留下了“root”的 mysql.users 行,其插件列值为“unix_socket”,这只允许使用 sudo 进行本地访问。好的。我将添加一个新用户。

  4. 我在本地登录并运行:

    创建用户“myname”@“%”,标识为“mypass”;

    授予'mypass'@'%' 对 *.* 的所有权限;

    刷新权限;

我可以使用本地主机的“myname”进行连接。

  1. 我在 Google Cloud 防火墙上为 0.0.0.0/0 上的 3306 端口打开了一个漏洞。我知道我做得对,因为我为 8088 端口创建了一条相同的规则,我可以很好地与该端口进行远程通信。

  2. 当我尝试从远程机器连接到 mysql 时,出现“无法连接到远程主机:连接被拒绝”的信息。

这可能是网络问题,也可能是 mysql 问题,我不知道是哪个问题。有什么想法吗?

答案1

搞清楚了。在配置文件的深处,/etc/mysql/maria.conf.d/50-server.cnf,有这样几行令人难以置信的代码:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 127.0.0.1

注释掉绑定地址并且它起作用。

这是 Debian 在您要求使用 MySql 时安装 MariaDB 的糟糕决定造成的结果。有一系列复杂的配置文件,交替命名为 mysql* 和 mariadb*,但没有一个能完成它们声称要做的事情。

相关内容