lio*_*elp 3 mysql phpstorm docker
我正在使用PhpStorm 2018.3.4,Docker,MySQL和Ubuntu。我尝试使用Docker容器配置MySQL失败network_mysql。
首先,我尝试了以下配置:
它给了我这个错误:
然后,我尝试了这个:
这个给了我另一个错误。
我想念什么吗?还有另一个地方我必须配置一些东西吗?
docker ps 输出:
在这里docker network ls:
对于命令docker inspect network_mysql,这里是描述的链接:https :
//pastebin.com/9LmeAkc8
这是docker-compose.yml配置:https ://pastebin.com/DB4Eye4y
我试图- "3306:3306"在此wex_server_proxy部分中添加无效。
要修改的文件是这个文件:
我添加了该ports部分,打开了3306端口:)然后,它起作用了。
我注意到您没有将mysql容器端口映射出来。如果这样做,您将从docker ps命令中看到以下内容:
... 0.0.0.0:3306->3306/tcp network_mysql
Run Code Online (Sandbox Code Playgroud)
容器network_mysql连接到称为的桥接型网络tmp_wex_net。这意味着该容器不能通过其容器名称从主机访问。
我似乎您正在为堆栈使用docker-compose.yml定义。为了能够从主机访问容器,您需要使用ports此容器的compose定义部分:
serivces:
mysql:
...
ports:
- "3306:3306"
...
Run Code Online (Sandbox Code Playgroud)
如果您以开头docker run,则可以使用以下命令完成相同的操作:
... 0.0.0.0:3306->3306/tcp network_mysql
Run Code Online (Sandbox Code Playgroud)
然后localhost在PHPStorm中使用连接设置的主机名。像这样:
主机:本地主机
港口:3306
数据库:网络
无法连接的原因是,network_mysql在连接设置中指定的主机名无法解析为计算机知道的任何主机。
docker容器的容器名称不是docker主机可以解析的DNS名称。
如果您没有为mysql容器指定任何网络,则它将连接到默认的网桥网络。并且,如果您创建了新网络,但未指定类型,则默认为网桥驱动程序。
为了从主机访问容器,您需要执行以下任一操作:
localhost:<portnum>通过主机访问该容器上专门映射的端口。| 归档时间: |
|
| 查看次数: |
1723 次 |
| 最近记录: |