我已经设置了在docker上运行的localstack。我有一个.Net Core 2.1 c#Lambda函数试图连接到localhost上的MySql数据库。这是我在控制台中得到的:
“无法连接到任何指定的MySQL主机”
这是我的连接字符串的样子:
“Data Source = localhost; Initial Catalog = xxx; Host = localhost; Connection Timeout = 10; User ID = xxxx; Password = xxxx; SSL Mode = none”
我尝试了各种IP地址(127 ...等),包括我们的实时数据库连接字符串。
编辑(201-Apr-2019):命令我在localstack文件夹上运行:
docker-compose up
这是我正在使用的docker文件:
version: '2.1'
services: localstack:
image: localstack/localstack
ports:
- "4567-4593:4567-4593"
- "${PORT_WEB_UI-8080}:${PORT_WEB_UI-8080}"
environment:
- SERVICES=lambda,sqs,dynamodb,s3
- DEBUG=1
- DATA_DIR=/tmp/localstack/data
- PORT_WEB_UI=${PORT_WEB_UI- }
- LAMBDA_EXECUTOR=docker-reuse
- KINESIS_ERROR_PROBABILITY=${KINESIS_ERROR_PROBABILITY- }
- DOCKER_HOST=unix:///var/run/docker.sock
volumes:
- "${TMPDIR:-/tmp/localstack}:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
所以我自己解决了这个问题,毕竟我只是傻了......
我必须将MySql连接字符串的“主机”从“localhost”更新为以太网适配器IP的IP地址,如下所示:
“Data Source = 172.x.x.x; Initial Catalog = xxx; Host = localhost; Connection Timeout = 10; User ID = xxxx; Password = xxxx; SSL Mode = none”