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

AB'*_*AB' 1 mysql mysql-workbench docker

我是 docker 的初学者,我正在研究 mysql 和 node.js 我运行 mysql docker 容器作为

docker run --name docker-mysql -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest
Run Code Online (Sandbox Code Playgroud)

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

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

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

码头工人

Mr.*_*tle 5

尝试这个:

docker run -p 3306:3306 --name docker-mysql -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest
Run Code Online (Sandbox Code Playgroud)

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

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

在此处输入图片说明


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

无法在 33016 处连接到 localhost”详细信息 = 无法加载身份验证插件“caching_sha2_password”:dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2):找不到图像

更新您的 MySQL 工作台。

如果这不起作用,您将需要向native passwordroot 用户添加一个。方法如下:

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

    docker exec -it docker-mysql bash

  2. 以root身份登录mysql

    mysql --user=root --password

  3. 输入 root 的密码(默认为“root”,但在本例中为“abc123”)

  4. 最后运行:

    使用 mysql_native_password 更改用户 'root' 标识为 'abc123';