我已经运行了这些命令:
\ndocker run --name mysql-standalone -e \nMYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=test -e MYSQL_USER=sa -e MYSQL_PASSWORD=password -d mysql:5.6\nRun Code Online (Sandbox Code Playgroud)\n然后
\n docker ps\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\n35da304532c8 mysql:5.6 "docker-entrypoint.s\xe2\x80\xa6" 4 hours ago Up 4 hours 3306/tcp mysql-standalone\n docker exec -it mysql-standalone bash\n root@35da304532c8:/# mysql -uroot -p -A\n Enter password:\n Welcome to the MySQL monitor. Commands end with ; or \\g.\n Your MySQL connection id is 6\n Server version: 5.6.51 MySQL Community Server (GPL)\n \n Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.\n \n Oracle is a registered trademark of Oracle Corporation and/or its\n affiliates. Other names may be trademarks of their respective\n owners.\n \n Type \'help;\' or \'\\h\' for help. Type \'\\c\' to clear the current input statement.\n \n mysql>\nRun Code Online (Sandbox Code Playgroud)\n但是在尝试通过 dbeaver 连接时我得到了这样的东西
\n\n我哪里做错了?
\n停止现有的 mysql 容器并将其删除:
docker stop <container id>
docker rm <container id>
Run Code Online (Sandbox Code Playgroud)
然后使用端口映射再次运行容器。用于-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
Run Code Online (Sandbox Code Playgroud)
这次 dbeaver 连接应该可以工作。
说明
您的 mysql 服务器正在 docker 容器内的端口 3306 中运行。该端口位于该容器内,而不是您的主机内。Dbeaver 不知道该容器,它尝试连接您的主机(您的笔记本电脑/个人电脑)端口。使用-p 3306:3306您将容器端口映射到您的计算机端口。
| 归档时间: |
|
| 查看次数: |
7857 次 |
| 最近记录: |