问题标签 [sql-server-linux]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
593 浏览

sql-server - 在 Linux 上的 SQL Server 2019 上创建 Windows 登录时出现“找不到 Windows NT 用户或组”

我需要在 CentOS 7 上运行的 SQL Server 2019 上启用 Active Directory 身份验证。

服务器 centos-1 alresdy 已经预先配置了 sssd 给我们 AD 认证。但是,我遵循了有关如何在 Linux 上的 SQL Server 上启用 Windows 身份验证的官方 Microsoft 指南:

  1. 将 Linux 服务器添加到域中

服务器可以查询域

  1. 为用于在 Windows 中运行 MSSQL 的服务帐户创建 SPN
  1. 创建 keytab 文件并将其复制到使用 SQL Server 的 centos-1 机器
  1. 配置 MSSQL 以使用 keytab

虽然 AD 可以对连接到服务器的用户进行身份验证,但 SQL Server 无法创建 Windows 登录。它说 Windows NT user or group 'SD\db_users' not found. Check the name again.

sssd.log 说

我认为问题在于 mssql-server 正在传递sd\db_users整个帐户名而没有省略域前缀sd

是否有让 MSSQL 在我的设置中使用 AD 的设置或方法?

0 投票
0 回答
227 浏览

sql-server - Kubernetes Microsoft SqlServer 不稳定

我遵循了有关如何在 Kubernetes 中将Microsoft SqlServer 部署为 Azure Kubernetes 服务上的容器的官方文档。我注意到了几件事,这与以下内容有关:

Kubernetes 中的两个容器

当我执行时kubectl get pods显示 2 个 mssql 实例,其中一个Running和一个Pending. 即使我删除了所有 pod kubectl delete pods -l app=mssql,Kubernetes 也会重新创建两个 pod。

在此处输入图像描述

偶尔会下降

当我在某些时候使用我的应用程序时,我开始收到错误:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:TCP 提供者,错误:40 - 无法打开与 SQL Server 的连接)

与服务器成功建立连接,但在登录前握手期间发生错误。(提供者:TCP 提供者,错误:35 - 捕获到内部异常)---> System.IO.IOException:无法从传输连接中读取数据:连接被对等方重置。

除了添加容器限制之外,我没有做任何与官方文档不同的事情。我相信容器甚至没有达到这些限制。我让 Kubernetes 在 2 个 4GB 的虚拟机上运行,​​当我添加 SqlServer 时,我添加了第三个 4GB 虚拟机,这样 Kubernetes 就有足够的 CPU 和内存来使用。

登录失败

最后但并非最不重要的一点是,如果我kubectl logs mssql-xyz有时运行,我会在日志中看到以下内容:

2020-10-28 13:24:16.83 用户 'sa' 的登录登录失败。原因:密码与提供的登录名不匹配。[客户端:10.240.0.4] 2020-10-28 13:24:18.09 登录错误:18456,严重性:14,状态:8。

显然,我的应用程序中的密码是正确的。可能和其他错误有关,我不知道...


对这一切有什么想法吗?我怎样才能使它工作稳定而没有任何错误?

0 投票
1 回答
684 浏览

sql-server - Docker (Linux) 和 Windows 主机中的 SQL Server 的 MSDTC 配置问题

我正在迁移本地 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 迭代:

我已经尝试了各种方法来调整 RPC 端口以使其正常工作。这是主要的 MS 文章。我试过端口135:135,但它给出了同样的错误。底部文章中的注释似乎与我的问题有关。

对于容器外部的 SQL Server 或非根容器,必须在容器中使用不同的临时端口(例如 13500),然后必须将到端口 135 的流量路由到该端口。您还需要在容器内配置从容器端口 135 到临时端口的端口路由规则。

此外,如果您决定将容器的端口 135 映射到主机上的其他端口,例如 13500,那么您必须在主机上配置端口路由。这使 docker 容器能够参与与主机和其他外部服务器的分布式事务。

SQL Server 2019 容器以非 root 用户身份运行。我已经尝试在 Windows 中使用 netsh 进行端口路由......还有 MS 文章链接到如何在 Ubuntu 中执行端口转发......即使在 SQL Server 容器中以 root 身份登录我也无法做到...... . iptables 没有安装,它不让我安装apt-get install它??我还更新了 Windows 中的 DTC 选项,使其尽可能打开,但没有任何效果。不知道秘方是什么。希望其他人也有类似的设置。

MSDTC 选项

0 投票
1 回答
430 浏览

docker - 如何在 WSL2 中的 Docker 命名卷中访问超过 251GB 的空间?

我为我的 SQL Linux 数据文件创建了一个命名卷,但 251G 的默认大小太小了。我按照说明扩展了 WSL2 VHD 的大小,然后使用resize2fs增加到大约 900GB。

使用df -Th我可以看到增加了 865GB 的大小,这很棒。但是带有 docker mounts 的设备仍然显示 251GB 的旧大小。

我无法调整大小/dev/sdd/dev/sdc- 我得到以下结果:

我尝试重新启动 Docker 并重新创建命名卷。

谁能告诉我我在这里做错了什么?如何增加命名卷的可用空间或让 docker 使用所有可用空间?

0 投票
0 回答
106 浏览

sql-server - WAITFOR 延迟/时间在 Windows Docker (SQL Server Linux) 中无法正常工作

在适用于 Windows 的 Docker Desktop 上的 SQL Server Linux 中不遵守 waitfor 延迟中指定的时间。

脚本:

输出:

我预计@tend 将是 2021-03-25 23:05:38.4457947 (因为我在等待中指定了 15 秒。

相同的代码在安装在 Windows 10 Pro(笔记本电脑)上的 SQL Server 上运行良好。有什么我想念的吗?

环境:SQL Server Linux (2019)

Docker for Desktop Windows(Linux 容器)(Docker 引擎:v20.10.5) 码头工人版本

0 投票
0 回答
65 浏览

sql-server - 在 SQL Server 中使用 Python 导出数据的 SQL Server-Python 权限问题

使用 SQL Server Management Studio 和 SQL Server 在 Ubuntu 18.04 上运行的命令返回错误。

错误:

我已经对/opt//var/opt上存在的 SQL Server 文件夹授予了完全权限,但没有运气。甚至我为运行 SQL Server 和 LaunchPad 服务但没有工作的用户授予了 Sudo 权限。即使我使用 chmod -R ugo+rwx /home/dataexport授予文件夹路径/home/dataexport的完全权限

0 投票
0 回答
23 浏览

sql-server - 在 Linux 上获取 SQL 日志消息

我在 Docker 容器 (Ubuntu) 中运行 SQL Server 和 PowershellCore。如何获取 SQL Server 输出的日志消息?

在 Windows 上,我会执行以下操作以从事件日志中读取:

在 Linux 上,这显然行不通。

在 Linux 上这相当于什么?

0 投票
1 回答
48 浏览

sql-server - Linux 时区问题上的 SQL Server 2019

为什么会有不同的结果(偏移量应该是 +03:00):

结果是:

linux时间是: