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

标签 mysql docker mysql-workbench

我是 docker 的初学者,我在 mysql 和 node.js 上工作,我将 mysql docker 容器运行为

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

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

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

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

docker ps

最佳答案

试试这个:

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

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

我刚刚对其进行了测试,它非常有效。

enter image description here


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

failed to connect to localhost at 33016" details = Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found

更新您的 MySQL 工作台。

如果这不起作用,您将需要为根用户添加一个 native 密码方法如下:

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

    docker exec -it docker-mysql bash

  2. 以root身份登录mysql

    mysql --user=root --password

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

  4. 最后运行:

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

关于mysql - 如何将 mysql docker 容器连接到 node.js 服务器或工作台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54839438/

相关文章:

php - 为什么 ng-repeat 在自动递增 id 时表现得很奇怪?

docker - 基于 pod 内文件的 Kubernetes 日志记录

mysql - “GRANT ALL ON 数据库。* TO 命令中出现错误

mysql - 尝试将坐标从 .txt 文件加载到 MySQL 时出错

mysql - 从两个表中统计,并按照存在的SQL个数排序

mysql - 检索插入数据库的最后记录值的最佳方法

mysql - 建议我在 MySql 中查询计数——我没有得到正确的输出

MYSQL Where on DateTime 错误结果

docker - 与主机数据目录映射时,Docker容器数据为空白

node.js - 在另一个 docker 容器内运行 docker 容器?