繁体   English   中英

Delphi Firedac 连接到 docker 容器中的 MySQL

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM