Mysql 从主机连接到Docker容器
我刚刚启动并运行了official,并让它在我的机器上本地运行:Mysql 从主机连接到Docker容器,mysql,jdbc,docker,Mysql,Jdbc,Docker,我刚刚启动并运行了official,并让它在我的机器上本地运行: docker run --name mydb -e MYSQL_ROOT_PASSWORD=12345 -d mysql:5.7.11 该屏幕上的说明告诉您如何从另一个容器(配置为命令行客户端)内部连接到MySQL服务器(容器)。但是我有一个通用的JDBC胖客户端(),我想知道如何连接到我的docker容器 对于JDBC连接字符串,我需要同时提供主机名和数据库名,我可以使用什么?我可以想象Docker容器可以从我的主机操作系统寻
docker run --name mydb -e MYSQL_ROOT_PASSWORD=12345 -d mysql:5.7.11
该屏幕上的说明告诉您如何从另一个容器(配置为命令行客户端)内部连接到MySQL服务器(容器)。但是我有一个通用的JDBC胖客户端(),我想知道如何连接到我的docker容器
对于JDBC连接字符串,我需要同时提供主机名和数据库名,我可以使用什么?我可以想象Docker容器可以从我的主机操作系统寻址,但我还没有创建任何数据库,因此我不确定我可以提供什么dbname
值:
jdbc:mysql://<hostname>:3306/<dbname>
jdbc:mysql://:3306/
您可以使用forwarding 3306运行实例:
$ docker run --expose=3306 -p 3306 mysql
看
您可以指定以下选项:
jdbc:mysql://127.0.0.1:3306/<dbname>
您可能需要更改MySQL配置
可通过以下方式进入容器内:
$ docker exec -it mydb bash
然后你可以:
$ echo "bind-address = 0.0.0.0" >> /etc/mysql/my.cnf
别忘了重新加载mysql
然后必须创建数据库并导入模式(如果需要)
$mysql-uroot-p12345-e“创建数据库mydb”
$mysql-uroot-p12345 mydb
您可以使用forwarding 3306运行实例:
$ docker run --expose=3306 -p 3306 mysql
看
您可以指定以下选项:
jdbc:mysql://127.0.0.1:3306/<dbname>
您可能需要更改MySQL配置
可通过以下方式进入容器内:
$ docker exec -it mydb bash
然后你可以:
$ echo "bind-address = 0.0.0.0" >> /etc/mysql/my.cnf
别忘了重新加载mysql
然后必须创建数据库并导入模式(如果需要)
$mysql-uroot-p12345-e“创建数据库mydb”
$mysql-uroot-p12345 mydb
谢谢@joksnet(+1)-请查看我更新的问题,其中现在包含我运行的确切Docker命令。当我尝试合并您的--expose
和-p
参数时,会出现各种错误。如何使用(合并的)expose/p参数运行命令?再次感谢!再次感谢!!!如果您不介意的话,还有一个快速跟进的问题:当您说“别忘了重新加载mysql”时,您的意思是停止/重新启动容器吗?再次感谢!只需尝试从容器内部重新加载服务mysql
。)谢谢@joksnet(+1)-请查看我更新的问题,其中现在包含我运行的确切Docker命令。当我尝试合并您的--expose
和-p
参数时,会出现各种错误。如何使用(合并的)expose/p参数运行命令?再次感谢!再次感谢!!!如果您不介意的话,还有一个快速跟进的问题:当您说“别忘了重新加载mysql”时,您的意思是停止/重新启动容器吗?再次感谢!只需尝试从容器内部重新加载服务mysql
。)