我想通過 Docker-compose 將我的應用程式與 MySQL 連接起來。但是,當我轉到https://localhost:5001/api/Contacts(我的 Api)時,它無法連接到資料庫(錯誤:)ERR_SSL_PROTOCOL_ERROR。
這是我的 Docker-compose:
services:
mysql:
image: mysql
restart: always
volumes:
- ./setup.sql:/docker-entrypoint-initdb.d/setup.sql
- dbdata:/var/lib/mysql
environment:
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: admin
ports:
- 3307:3306
webapi:
image: webapi
build: .
restart: always
depends_on:
- mysql
ports:
- 5001:80
volumes:
dbdata:
這是我的 Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<DotnetCoreTrainingContext>(options =>
.UseMySql(Configuration.GetConnectionString("DefaultConnection"),
new MySqlServerVersion(new Version())));
services.AddControllers();
}
這是我的 appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "server=mysql;user=root;password=admin;port=3307;database=DotnetCoreTraining;sslmode=none;"
}
如何設定server=mysql(我計算機中 Docker 上 MySQL 映像的名稱)ConnectionStrings?
uj5u.com熱心網友回復:
當您從 docker-compose 創建的橋接網路上的另一個容器連接時,您使用容器正在偵聽的埠進行連接。從主機連接時使用映射埠。
在您的情況下,這意味著您需要在埠 3306 上進行連接,并且您的連接字串應該是
server=mysql;user=root;password=admin;port=3306;database=DotnetCoreTraining;sslmode=none;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/410746.html
標籤:
