首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将mysql停靠器容器连接到node.js服务器或工作台

如何将mysql停靠器容器连接到node.js服务器或工作台
EN

Stack Overflow用户
提问于 2019-02-23 07:54:13
回答 4查看 6.9K关注 0票数 1

我的工作是mysql和node.js,我运行mysql停靠容器

代码语言:javascript
复制
docker run --name docker-mysql -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest

而docker ps的结果显示mysql容器正在运行,docker日志显示

MySQL init进程完成。准备启动.

如何在工作台或应用程序中连接此容器

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-02-23 09:42:00

试试这个:

代码语言:javascript
复制
docker run -p 3306:3306 --name docker-mysql -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest

这将将本地机器上的端口3306绑定到码头映像。您应该能够用localhost连接到数据库&端口3306,具有用户名root和密码abc123

我刚刚测试了它,它就像一种魅力。

如果您正在与错误作斗争:

未能连接到本地主机上的33016“详细信息=身份验证插件'caching_sha2_password‘无法加载:caching_sha2_password 2):图像找不到

更新你的MySQL-工作台.

如果这不起作用,您将需要向根用户添加一个native password。以下是如何:

  1. 通过bash连接到您的停靠者映像: 码头主管-it码头-mysql bash
  2. 以root身份登录mysql mysql --user=root --密码
  3. 输入root密码(默认值为“root”,但本例中为“abc123”)
  4. 最后运行: 改变用户‘根’与mysql_native_password识别‘abc123 123’;
票数 5
EN

Stack Overflow用户

发布于 2019-02-23 09:17:30

您需要公开端口

使用-p-P

-p绑定到自定义端口,-P将随机为您分配一个端口。

:latest不需要添加,停靠将帮助您添加。

最后的命令应该如下所示:

代码语言:javascript
复制
docker run -dit -P --name docker-mysql -e MYSQL_ROOT_PASSWORD=abc123 mysql:latest

然后使用xx查看公开的端口:

代码语言:javascript
复制
docker port docker-mysql

检查机器的哪个端口映射到容器的3306端口,我的结果是:

代码语言:javascript
复制
33060/tcp -> 0.0.0.0:32818
3306/tcp -> 0.0.0.0:32819

现在,您可以通过软件或代码连接到此端口。

票数 1
EN

Stack Overflow用户

发布于 2019-02-23 08:43:32

开发最好的方法是将容器连接到“主机”网络。

代码语言:javascript
复制
docker run --name docker-mysql --network host -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest

当您移动到暂存/prod环境时,请考虑使用一些编排解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54839438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档