nab*_*y27 5 mysql node.js docker docker-compose
我正在尝试通过 dokcer-compose 将节点与 mysql 连接。我可以使用工作台访问 mysql,但是当我尝试连接节点时出现错误:
\n\nError: connect ECONNREFUSED 127.0.0.1:3306\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0 at TCPConnectWrap.afterConnect [as oncomplete] (net.js: 1054: 14))\nRun Code Online (Sandbox Code Playgroud)\n\n有谁知道发生了什么事吗?
\n\nversion: \'3\'\n\nservices:\n\n #App Service\n app:\n image: "node:alpine"\n container_name: cms-node\n restart: unless-stopped\n tty: true\n working_dir: /app\n environment:\n - NODE_ENV=production\n ports:\n - 1234:1234\n volumes:\n - ./:/app\n links:\n - db\n depends_on:\n - db\n\n #Mysql Service\n db:\n image: mysql:latest\n container_name: cms-mysql\n restart: unless-stopped\n # command: --default-authentication-plugin=mysql_native_password\n environment:\n MYSQL_DATABASE: CMS\n MYSQL_USER: root\n MYSQL_PASSWORD: root\n MYSQL_ROOT_PASSWORD: root\n ports:\n - 3306:3306\nRun Code Online (Sandbox Code Playgroud)\n\nconst db: Connection = mysql.createConnection({\n host: \'localhost\',\n user: \'root\',\n password: \'root\',\n database: \'CMS\',\n});\n\nexport default db;\nRun Code Online (Sandbox Code Playgroud)\n\ndb.connect((err) => {\n if (err) {\n throw err;\n }\n console.log(\'Connected!\');\n });\nRun Code Online (Sandbox Code Playgroud)\n
您应该使用链接名称(默认情况下,链接服务的名称)作为要连接的主机名。有关详细信息,请参阅docker-compose.yml文档。
所以只需使用host: 'db'而不是host: 'localhost'
| 归档时间: |
|
| 查看次数: |
34705 次 |
| 最近记录: |