我已经在端口 6612 上设置了一个 MariaDB 服务器。db.bestalbumsintheuniverse.com
我在本地笔记本电脑(macOS)上的命令行中遇到以下情况:
$ mysql -h db.bestalbumsintheuniverse.com -P 6612
ERROR 2002 (HY000): Can't connect to server on 'db.bestalbumsintheuniverse.com' (60)
$ docker run -ti maria-client mysql -u [redacted] -p[redacted] -P 6612 -h db.bestalbumsintheuniverse.com -e 'SELECT version()'
+---------------------------+
| version() |
+---------------------------+
| 10.6.7-MariaDB-2ubuntu1.1 |
+---------------------------+
maria-client
是使用以下Dockerfile构建的docker容器:
FROM ubuntu:22.04
RUN apt update && apt install -y mariadb-client
服务器db.bestalbumsintheuniverse.com
在 Digital Ocean 上运行 Ubuntu 22.04,安装并配置了 MariaDB 10.6 以监听所有接口和端口 6612。我还启用了 UFW,并允许从任何地方在端口 6612 上建立 TCP 连接。网络正常运行(Docker 容器的连接正常运行就是明证)。
以下是一些相关的版本字符串:
笔记本电脑上的mysql(MariaDB):
$ mysql --version
mysql Ver 15.1 Distrib 10.6.10-MariaDB, for osx10.17 (x86_64) using EditLine wrapper
笔记本电脑上的 docker 容器中的 mysql(MariaDB):
$ docker run -ti maria-client mysql --version
mysql Ver 15.1 Distrib 10.6.7-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
服务器 MariaDB:
$ mysqld --version
mysqld Ver 10.6.7-MariaDB-2ubuntu1.1 for debian-linux-gnu on x86_64 (Ubuntu 22.04)
我一直认为这是一个版本不匹配的问题,因为我之前遇到过 MariaDB 的连接问题和版本不匹配的问题。
显然问题不在于网络连接,因为我可以使用 Docker 容器化的 mariadb 进行连接,对吧?那么为什么我可以从 macOS 上的 Docker 容器进行连接,但不能从同一设备上的本机 mysql(MariaDB)客户端进行连接?
答案1
我当时在 AirBnB(不是我的家庭网络),当我回到自己的网络时,这个问题就解决了。一定是某些奇怪的网络配置(尽管我仍然不明白为什么它在同一台机器上的 Docker 容器中工作)。