ОШИБКА [42000] [Microsoft][Драйвер ODBC 17 для SQL Server][SQL Server]Не удается открыть базу данных»», запрошенную при входе в систему. Ошибка входа в систему

#.net #sql-server #odbc

#.net #sql-сервер #odbc

Вопрос:

Когда я подключаюсь к базе данных SQL Server с подключением odbc с помощью docker, я получаю эту ошибку:

ОШИБКА [42000] [Microsoft][Драйвер ODBC 17 для SQL Server][SQL Server]Не удается открыть базу данных»», запрошенную при входе в систему. Ошибка входа в систему.

Мой файл docker выглядит так:

 FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build-env WORKDIR /app  # Copy csproj and restore as distinct layers EXPOSE 80  ENV ASPNETCORE_URLS=http:// :80 COPY *.csproj ./ RUN dotnet restore  # Copy everything else and build COPY . . RUN dotnet publish -c Release -o out  # Build runtime image FROM mcr.microsoft.com/dotnet/aspnet:5.0 WORKDIR /app COPY --from=build-env /app/out . ENTRYPOINT ["dotnet", "Api.dll" ,"--environment=Development"]  RUN mkdir -p /usr/share/man/man1 RUN apt-get update RUN apt-get -y install gcc default-jre graphviz libgraphviz-dev graphviz-dev pkg-config RUN apt-get install --reinstall build-essential -y  #install sqlcmd and odbc and others RUN apt-get update amp;amp; apt-get install -y --no-install-recommends   unixodbc-dev   unixodbc   libpq-dev    RUN apt-get -y install curl RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -  RUN curl https://packages.microsoft.com/config/debian/10/prod.list gt;  /etc/apt/sources.list.d/mssql-release.list RUN apt-get update   RUN ACCEPT_EULA=Y apt-get install msodbcsql17 RUN ACCEPT_EULA=Y apt-get install mssql-tools  RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' gt;gt; ~/.bash_profile RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' gt;gt; ~/.bashrc  RUN chmod  rwx /etc/ssl/openssl.cnf RUN sed -i 's/TLSv1.2/TLSv1/g' /etc/ssl/openssl.cnf RUN sed -i 's/SECLEVEL=2/SECLEVEL=1/g' /etc/ssl/openssl.cnf  

и мой файл docker compose выглядит так

 version: "3.4"  services:  web:  build:  context: ./  dockerfile: Dockerfile  ports:  - "8080:80"  volumes:  - ./wwwroot:/app/wwwroot  environment:  - DATABASE_TYPE=MsSql   - DATABASE_NAME= mydb  - DATABASE_WAREHOUSE=  - DATABASE_ROLE=  - CONNECTION=Driver={ODBC Driver 17 for SQL   Server};server=192.168.0.125\sql2017,1433;database=mydb;uid=user;pwd=admin  - CONNECTION_TYPE=odbc    

Комментарии:

1. server=192.168.0.125\sql2017,1443; похоже на несколько опечаток, потому что а) именованные экземпляры не работают в контейнерах SQL Server для докеров Linux (служба браузера SQL не прослушивает udp/1434) и б) порт прослушивания SQL Server-1433.

2. Где ваш файл Dockerfile для контейнера SQL Server? Вы где-то создаете/восстанавливаете mydb базу данных?

3. я использовал образ sql, который также не работает

4. Вы где-то создаете/восстанавливаете mydb базу данных? SQL Server не создает новую базу данных во время входа в систему только потому, что кто-то просит об этом, ответственные администраторы сервера создают их с соответствующими настройками, расположением файлов и ограничениями ресурсов.

5. в моем местном он работает нормально. но когда я помещаю это в докер, я получаю эту ошибку