[英]Delphi Firedac connect to MySQL in docker container
我使用 Docker 的默认设置在我的 Windows 10 上创建了一个 MySQL 映像。
我使用以下命令启动了容器:
docker run --name local-mysql --network="host" -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d <your-docker-Image>
我使用了 --network 参数,希望我可以从我的主机连接到容器。
然后我运行这个命令从 MySQL shell 连接到容器
docker exec -it mysql bash -l
我能够使用这个连接
mysql -h localhost -P 3306 --protocol=tcp -u root -p
使用 Delphi 并设置 FireDac 使用 DriverId MySQL,我指定主机为 localhost,端口 3306,用户为 root 和密码。
但我收到此连接错误
[FireDAC][Phys][MySQL] Cannot connect to MySQL server on 'localhost:3306' (10061)
我曾尝试使用 127.0.0.1 和 0.0.0.0 没有成功并且出现相同的错误。
如果有人尝试过使用 Delphi FireDac 连接到托管在同一台计算机上的 MySQL 容器,我将不胜感激。
先感谢您。
我能够通过使用此命令运行图像来解决该问题
docker run --name local-mysql -p 127.0.0.1:3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d <your-docker-Image>
我使用了不同的主机端口(3307)来映射到默认的 3306
我能够首先使用 bash 测试它
mysql -h 127.0.0.1 -P 3306 -u root -p
在 Delphi FireDac 中,我使用以下连接
Host=127.0.0.1
Port=3307
User_Name=root
Password=my-secret-pw
一切都很好。 希望这可以帮助那些正在尝试相同的人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.