docker compose sql db映像连接错误

2ul0zpep  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(301)

我有一个 docker-compose.yml 文件,我想创建三个容器来运行我的节点应用程序:一个客户端、一个服务器、一个包含一些数据的db容器。
我很难创建数据库容器并将其连接到服务器容器,我正在使用sequelize连接数据库,但是 docker-compose up 服务器应用程序启动时出现连接错误的命令:
服务器1 |无法连接到sql数据库:webgrit | superactivation{sequelizeconnectionrefuredserror:connect econnrefered127.0.0.1:3306
这是我的 docker-compose 文件:

version: "3"

services:
  # client
  client:
    image: "ngapp"
    build: "client/dist/."
    ports:
      - "4200:80"
  # Server
  server:
    image: "exapp"
    build: "server/."
    ports:
      - "3000:3000"
    links:
      - db
  # MySQL
  db:
    image: mysql:5.7
    command: mysqld --user=root
    volumes: 
      - ./mysql-dump:/docker-entrypoint-initdb.d
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypass
      MYSQL_DATABASE: mydbname

在mysql图像中,我使用 data.sql 将文件转储到init my db,但出现问题
这是我的服务器容器 dbconfig.js 用于连接mysql db的文件:

CONFIG.db_name = process.env.DB_NAME_DEV || "mydbname";
CONFIG.db_user = process.env.DB_USER_DEV || "myuser";
CONFIG.db_password = process.env.DB_PASSWORD_DEV || "mypass";
CONFIG.db_dialect = process.env.DB_DIALECT_DEV || "mysql";
CONFIG.db_host = process.env.DB_HOST_DEV || "localhost";
CONFIG.db_port = process.env.DB_PORT_DEV || "3306";

这是我人生的开始 data.sql 转储文件:

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";

CREATE DATABASE IF NOT EXISTS `mydbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `mydbname`;

CREATE TABLE `users` (
...

编辑:您可以在此处找到错误日志:https://github.com/ufollettu/seansa/blob/master/docker%20error%20log.log
我对docker很陌生,怎么解决这个问题?谢谢你的帮助

hfwmuf9z

hfwmuf9z1#

将主机更改为db服务名称,即 db - CONFIG.db_host = process.env.DB_HOST_DEV || "db";

相关问题