如何在本地连接 dbeaver 与 mysql 的 docker 实例
How to connect dbeaver with docker instance of mysql locally
我有 运行 那些命令:
docker run --name mysql-standalone -e
MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=test -e MYSQL_USER=sa -e MYSQL_PASSWORD=password -d mysql:5.6
然后
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
35da304532c8 mysql:5.6 "docker-entrypoint.s…" 4 hours ago Up 4 hours 3306/tcp mysql-standalone
docker exec -it mysql-standalone bash
root@35da304532c8:/# mysql -uroot -p -A
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.6.51 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
但是在尝试通过 dbeaver 连接时我得到了这样的东西
我哪里做错了?
停止您现有的 mysql 容器并将其删除:
docker stop <container id>
docker rm <container id>
然后 运行 容器再次使用端口映射。使用 -p 3306:3306
将容器端口映射到主机端口。
完整的命令如下:
docker run --name mysql-standalone -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=test -e MYSQL_USER=sa -e MYSQL_PASSWORD=password -p 3306:3306 -d mysql:5.6
此时 dbeaver 连接应该可以正常工作。
说明
您的 mysql 服务器 运行 正在 docker 容器内的端口 3306 中。这个端口是 inside 那个容器,而不是你的主机。 Dbeaver 不知道该容器,它会尝试连接您的主机(您的 laptop/pc)端口。使用 -p 3306:3306
将容器端口映射到计算机端口。
我有 运行 那些命令:
docker run --name mysql-standalone -e
MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=test -e MYSQL_USER=sa -e MYSQL_PASSWORD=password -d mysql:5.6
然后
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
35da304532c8 mysql:5.6 "docker-entrypoint.s…" 4 hours ago Up 4 hours 3306/tcp mysql-standalone
docker exec -it mysql-standalone bash
root@35da304532c8:/# mysql -uroot -p -A
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.6.51 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
但是在尝试通过 dbeaver 连接时我得到了这样的东西
我哪里做错了?
停止您现有的 mysql 容器并将其删除:
docker stop <container id>
docker rm <container id>
然后 运行 容器再次使用端口映射。使用 -p 3306:3306
将容器端口映射到主机端口。
完整的命令如下:
docker run --name mysql-standalone -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=test -e MYSQL_USER=sa -e MYSQL_PASSWORD=password -p 3306:3306 -d mysql:5.6
此时 dbeaver 连接应该可以正常工作。
说明
您的 mysql 服务器 运行 正在 docker 容器内的端口 3306 中。这个端口是 inside 那个容器,而不是你的主机。 Dbeaver 不知道该容器,它会尝试连接您的主机(您的 laptop/pc)端口。使用 -p 3306:3306
将容器端口映射到计算机端口。