无法使用Acumos_mariadb_service docker容器连接到MySQL

时间:2020-07-20 15:14:55

标签: mysql docker localhost mariadb-10.3 acumos

我已经将maria_db服务安装为Acumos的docker组件。即使Docker容器正在运行,我也无法执行以下命令:

mysql -h localhost -P 3306 --user=root --password=98dceddd-a364-4f76-abe0-b0dc7283fc7f -e 'SHOW DATABASES;'

因为我将错误作为错误:

错误2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器

但是,如果我使用以下命令登录到Docker容器中

docker exec -it acumos_mariadb_db_service bash

并运行相同的命令,它就可以工作。

如何从容器外部登录MySQL服务器而不会出现任何错误?

2 个答案:

答案 0 :(得分:0)

泊坞窗是否在本地主机上公开了端口3306?

 docker run --name some-mariadb -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb:tag -p 3306:3306 

默认情况下,Docker容器不向主机公开端口;您需要自己设置它们。在上面的示例中,您正在将容器的端口3306映射到本地计算机的3306。

有关如何设置容器网络的详细信息,请点击此处: https://docs.docker.com/config/containers/container-networking/

答案 1 :(得分:0)

我终于解决了这个问题。问题是mariadb服务器作为docker映像运行,暴露了端口3306,并且mariadb客户端也使用端口3306安装在同一本地计算机上。更改端口映射,如0.0.0.0:3307->3306/tcp解决了该问题。