我是 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 run -p 3306:3306 --name docker-mysql -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest
这会将本地计算机上的端口 3306 绑定(bind)到 docker 镜像。您应该能够使用用户名 root
和密码 abc123
连接到本地主机和端口 3306 的数据库。
我刚刚对其进行了测试,它非常有效。
如果您正在为错误而苦苦挣扎:
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 密码
。方法如下:
通过 bash 连接到您的 docker 镜像:
docker exec -it docker-mysql bash
以root身份登录mysql
mysql --user=root --password
输入 root 的密码(默认为“root”,但在此示例中为“abc123”)
最后运行:
使用 mysql_native_password BY 'abc123' 更改用户 'root' 标识;
关于mysql - 如何将 mysql docker 容器连接到 node.js 服务器或工作台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54839438/