我已经在 Ubuntu 16.04 上安装了 mssql。以下是sql server的详细信息。ms sql(14.0.3015.40-1)即SQL server 2017。
当我运行配置命令时#sudo /opt/mssql/bin/sqlservr-setup
出现错误sudo: /opt/mssql/bin/sqlservr-setup: command not found
我已经停止并重新启动但没有用。
当我通过命令检查状态时 #systemctl status mssql-server
我有
mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
Active: inactive (dead) (Result: exit-code) since Fri 2018-02-02 16:15:29 IST; 4min 20s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Process: 28050 ExecStart=/opt/mssql/bin/sqlservr (code=exited, status=200/CHDIR)
Main PID: 28050 (code=exited, status=200/CHDIR)
Feb 02 16:15:28 chetan-desktop systemd[1]: mssql-server.service: Unit entered failed state.
Feb 02 16:15:28 …Run Code Online (Sandbox Code Playgroud) database sql-server ubuntu-16.04 sql-server-2017 sql-server-linux
我在Linux上安装了SQL Server.它是从Microsoft的repos安装的,如下所述:https: //docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu
在MySql中,我曾经EXPLAIN在查询前写过,看看执行计划.在SQL Server中,它似乎不起作用.但我没有安装工作室程序,只有SQL Server和sqlcmd工具.
如何在Linux上的SQL Server中查看查询的执行计划?
linux sql-server sql-execution-plan sql-operations-studio sql-server-linux
我正在迁移本地 SQL Server 开发数据库以在 Linux docker 容器(在同一开发计算机上)中运行。在 Windows 上的 Visual Studio 2019 中运行集成测试时,我收到 MSDTC 错误:
抛出异常:System.Data.dll 中的“System.Transactions.TransactionManagerCommunicationException” System.Data.dll 中发生“System.Transactions.TransactionManagerCommunicationException”类型的异常,但未在用户代码中处理与底层事务管理器的通信失败。
这是我的 docker-compose 中 SQL Server 的最新版本:
services:
sqlserver:
image: mcr.microsoft.com/mssql/server:2019-latest
container_name: SqlServer
restart: always
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=verySecretPassword
- MSSQL_RPC_PORT=13500
- MSSQL_DTC_TCP_PORT=51000
ports:
- "1401:1433"
- "135:13500"
- "51000:51000"
volumes:
- sqldata:/var/opt/mssql
Run Code Online (Sandbox Code Playgroud)
我尝试了各种方法来调整 RPC 端口以使其正常工作。这是 MS 的主要文章。我尝试过端口135:135但它给出了相同的错误。文章底部的注释似乎与我的问题有关。
对于容器外部的 SQL Server 或非根容器,必须在容器中使用不同的临时端口(例如 13500),并且必须将到端口 135 的流量路由到该端口。您还需要在容器内配置从容器端口 135 到临时端口的端口路由规则。
另外,如果您决定将容器的端口 135 映射到主机上的其他端口(例如 13500),则必须在主机上配置端口路由。这使得 docker 容器能够参与与主机和其他外部服务器的分布式事务。
SQL Server 2019 容器以非 …
我正在尝试为 Docker 设置集成测试环境。我们需要将 bacpac 恢复到我们的mssql-server-linux:latest图像,以便我们可以基于数据集运行测试。
我的撰写文件如下所示:
version: '3'
services:
projectweb:
image: projectweb
build:
context: .
dockerfile: Project\Dockerfile
depends_on:
- db
db:
image: "microsoft/mssql-server-linux"
environment:
SA_PASSWORD: "MyVerySecurePassword"
ACCEPT_EULA: "Y"
volumes:
- ./database:/tmp
Run Code Online (Sandbox Code Playgroud)
我不需要对数据库的更改在容器的生命周期之后持久化。我只需要编写脚本将数据放入其中。我对 Linux 的 docker 或 SQL Server 没有很多经验。我假设我需要等待容器初始化和数据库设置并启动,然后执行从 tmp 文件夹读取数据库 bacpac 的脚本。据我所知,我应该使用 sqlpackage 但这似乎不在容器中?我是否需要另一个包含此 SSDT/sqlpackage 的容器?我可以将 splpackage 安装到容器中吗?
导入 bacpac 数据的最佳方法是什么?
我正在关注https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-docker?view=sql-server-2017在 macos 中配置和运行独立的 sqlserver 容器数据成功。现在我想创建一个 docker-compose 文件,其中包含两件事:
我如何实现(2)?
我的 docker-compose 文件:
version: "3"
services:
web:
build:
context: ./webapi
dockerfile: Dockerfile
ports:
- "4010:80"
environment:
- ASPNETCORE_ENVIRONMENT=Development
depends_on:
- db
db:
image: "mcr.microsoft.com/mssql/server:2017-latest"
ports:
- "4009:1433"
volumes:
- "sqlvolume:/var/opt/mssql"
environment:
SA_PASSWORD: "<password>"
ACCEPT_EULA: "Y"
redis:
image: "redis:alpine"
volumes:
sqlvolume:
Run Code Online (Sandbox Code Playgroud) 我有一个SQL Server Dockerfile,我的import-data.sh *.sql从sql-data文件夹中导入文件。如果我*.sql从Datagrip之类的工具运行文件,一切都会正常,但导入会自动失败,并显示此错误消息。
错误信息:
消息1934,级别16,状态1,第4行
CREATE INDEX失败,因为以下SET选项的设置不正确:“ QUOTED_IDENTIFIER”。验证SET选项是否正确用于计算列的索引视图和/或索引和/或已过滤索引和/或查询通知和/或XML数据类型方法和/或空间索引操作。
Docker文件
FROM microsoft/mssql-server-linux:2017-latest
RUN mkdir /sql-data/
EXPOSE 1433
COPY entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/entrypoint.sh
COPY import-data.sh /usr/src/app/
RUN chmod +x /usr/src/app/import-data.sh
# Copy SQL Scripts to sql-data for processing
COPY ./sql-data/*.sql /sql-data/
CMD /bin/bash /usr/local/bin/entrypoint.sh
Run Code Online (Sandbox Code Playgroud)
入口点
#!/bin/bash
#start SQL Server, start the script to create the DB and import the data, start the app
/usr/src/app/import-data.sh & /opt/mssql/bin/sqlservr
Run Code Online (Sandbox Code Playgroud)
import-data.sh
#!/bin/bash
# wait for the SQL Server to come …Run Code Online (Sandbox Code Playgroud)