database - 无法在Docker外部访问Dockerized数据库

标签 database docker

services:
  db:
    image: mariadb
    ports:
      - 3306:3306
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=pw
      - MYSQL_PASSWORD=pw
      - MYSQL_DATABASE=db
      - MYSQL_USER=user

我用它来创建数据库,运行docker-compose,然后尝试使用以下方法访问数据库:
sudo mysql -u user -h 127.0.0.1:3306 -p

但是我收到以下错误:
ERROR 2005 (HY000): Unknown MySQL server host '127.0.0.1:3306' (-2)

看来3306端口实际上并未暴露,我不明白为什么。

最佳答案

您的命令语法无效。应该

mysql -u user -h 127.0.0.1 -P 3306 -p

使用默认端口(3306)时,您可以完全省略它。
mysql -u user -h 127.0.0.1 -p

关于database - 无法在Docker外部访问Dockerized数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59510956/

相关文章:

docker - docker 中的 WebdriverIO 测试

java - 编译 : INSERT INTO table 时出现 Android SQLiteException "no such table"

database - Postgres STRING_TO_ARRAY 替代方案?喜欢 STRING_TO_RECORD?

database - Laravel 在数据库上执行计划作业

.net - 将工件传递给 Azure DevOps 中的 Docker 任务

docker - Kubernetes NodePort 不返回容器的响应

python - cv2.VideoCapture 无法在 Mac 主机上的 docker 容器中工作

mysql - 条件 MySql 查询

sql - 如何在 sqlite 中使用 like 运算符进行复杂查询

docker - 什么是好的 docker webdev 工作流程?