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

时间:2019-02-23 07:54:14

标签: mysql docker mysql-workbench

我是docker的初学者,而iam在mysql和node.js上工作,我以

运行mysql docker容器
=ARRAYFORMULA(IFERROR(VLOOKUP($G$4:$G, Data!$A$2:$U, 
 IFS(H2="Bear",            2,
     H2="Bwuce",           3,
     H2="Calcifer",        4, 
     H2="Capt. Kwazy Sox", 5,
     H2="Chooie",          6,
     H2="Lil Fibbs",       7,
     H2="Howl",            8,
     H2="JC",              9,
     H2="Jim Rat",        10,
     H2="Milo Jr",        11,
     H2="Sgt. Simba Sox", 12,
     H2="Angel",          14,
     H2="Fern",           15,
     H2="Fuzznut",        16,
     H2="Houdini",        17,
     H2="Kami",           18,
     H2="Mumma Bear",     19, 
     H2="Rosie J",        20,
     H2="Sophie",         21), 0), ))

并且docker ps的结果显示mysql容器正在运行 和docker日志说

MySQL初始化过程完成。准备启动。

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

docker ps

4 个答案:

答案 0 :(得分:1)

您需要公开端口

使用-p-P

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

:latest不需要添加,docker会帮助您添加。

最终命令应如下所示:

docker run -dit -P --name docker-mysql -e MYSQL_ROOT_PASSWORD=abc123 mysql:latest

然后使用xx查看暴露的端口:

docker port docker-mysql

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

33060/tcp -> 0.0.0.0:32818
3306/tcp -> 0.0.0.0:32819

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

答案 1 :(得分:1)

尝试一下:

docker run -p 3306:3306 --name docker-mysql -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest

这会将您本地计算机上的端口3306绑定到docker映像。您应该能够使用用户名root和密码abc123使用本地主机和端口3306连接到数据库。

我刚刚对其进行了测试,它的工作原理就像是一种魅力。

enter image description here


如果您正在为错误而苦苦挣扎:

  

无法通过33016连接到本地主机”详细信息=身份验证   无法加载插件“ caching_sha2_password”:   dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so,2):图片   找不到

更新您的MySQL工作台。

如果这样不起作用,则需要向根用户添加native password方法如下:

  1. 通过bash连接到您的docker映像:

    docker exec -it docker-mysql bash

  2. 以root用户身份登录mysql

    mysql --user = root --password

  3. 输入root的密码(默认为'root',但在此示例中为'abc123')

  4. 最终运行:

    使用mysql_native_password通过'abc123'标识ALTER USER'root';

答案 2 :(得分:0)

对于开发而言,最好的方法是将容器连接到“主机”网络

docker run --name docker-mysql --network host -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest

当您转移到暂存/产品环境时,请考虑使用一些业务流程解决方案。

答案 3 :(得分:0)

运行docker inspect container_id,它将显示容器端口,但不显示主机端口绑定。默认情况下,不带-p标志运行它将为容器分配端口,但不会公开主机端口,因此,为达到此目的,请在docker run命令中大声尝试-p标志-p 3306:3306。