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

时间:2019-12-28 12:39:35

标签: 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端口实际上并未暴露,我不明白为什么。

2 个答案:

答案 0 :(得分:1)

您的命令语法无效。应该是

    line.extendBrush = function(brushSelection) {
      const point = Math.round((brushSelection[0] + brushSelection[1])/2);
      return [
        point - 0.5,
        point + 0.5
      ];
    };

使用默认端口(3306)时,您可以完全省略它。

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

答案 1 :(得分:1)

从数据库主机中删除端口,它只能包含URL

mysql -u user -h 127.0.0.1 -p