最近,我使用 SQL Server Express 安装程序和此说明将 LocalDB 从版本 13 升级到 14 。安装后,我停止了现有的13版默认实例(MSSQLLOCALDB)并创建了一个新实例,该实例自动使用了v14.0.1000服务器引擎。
我经常使用 LocalDB 进行数据库集成测试,即在我的 xunit 测试中,我创建了一个(临时)数据库,该数据库在测试完成时被删除。由于新版本,不幸的是,由于以下错误消息,我所有的测试都失败了:
CREATE FILE 在尝试打开或创建物理文件“C:\Users\kepflDBd0811493e18b46febf980ffb8029482a.mdf”时遇到操作系统错误 5(访问被拒绝。)
奇怪的是,mdf 文件的目标路径不正确,在C:\Users\kepfl和DBd0811493e18b46febf980ffb8029482a.mdf(这是单个测试的随机数据库名称)之间缺少反斜杠。数据库是通过简单的命令创建的CREATE DATABASE [databaseName]
——这里没有什么特别的。
在 SSMS 中,我看到数据、日志和备份的目标位置如下:
但是,当我尝试更新位置时,我收到另一条错误消息:
如何更新默认位置以便 LocalDB 能够再次创建数据库?很明显,LocalDB 没有正确组合默认位置目录和数据库文件名 - 是否有我可以编辑的注册表项?或者别的什么?
在 Doug 的回答和 sepupic 的评论后更新
根据这个 Stackoverflow question,默认位置也应该可以通过注册表更改。但是,如果我尝试查找相应的键“DefaultData”、“DefaultLog”和“BackupDirectory”,则无法在我的注册表中找到它们。SQL Server v14 是否重命名了这些注册表项,或将这些信息移出了注册表?
我正在尝试使用 SQLCMD 实用程序通过 PowerShell 访问我计算机上的“localdb\MSSQLLocalDB”服务器。我使用的是 PowerShell v5、.NET v5.0,服务器名称是(localdb)\MSSQLLocalDB
我在 Microsoft SQL Server Management Studio 2014 中连接到它时的名称。
PS C:\> sqlcmd -S localdb\MSSQLLocalDB
并PS C:\> sqlcmd -S .\localdb\MSSQLLocalDB
导致此错误:
Sqlcmd:错误:Microsoft ODBC Driver 11 for SQL Server:SQL Server 网络接口:定位服务器/实例时出错 [xFFFFFFFF]。
我在 Management Studio 中查询服务器名称SELECT @@ServerName
并-S
在上面的命令之后使用它并得到相同的错误。
PS C:\> sqlcmd -S localdb
给出这个错误:
Sqlcmd:错误:用于 SQL Server 的 Microsoft ODBC 驱动程序 11:命名管道提供程序:无法打开与 SQL Server 的连接 [53]
其他注意事项:我能够连接到服务器并使用此连接字符串在 C# 控制台应用程序中使用名为testdb01的数据库System.Data.SqlClient
:
"Data Source=(localdb)\\mssqllocaldb;Initial Catalog=testdb01;Integrated Security=SSPI;"
Run Code Online (Sandbox Code Playgroud) 我是管理员,只需运行以下命令:
sqllocaldb start v11.0
Run Code Online (Sandbox Code Playgroud)
结果:
Start of LocalDB instance "v11.0" failed because of the following error:
Error occurred during LocalDB instance startup: SQL Server process failed to sta
rt.
Run Code Online (Sandbox Code Playgroud)
事件查看器日志事件 ID:528
Windows API 调用 WaitForMultipleObjects 返回错误代码:575。Windows 系统错误消息是:{Application Error} 应用程序无法正确启动 (0x%lx)。单击确定关闭应用程序。在第 3621 行报告。
我尝试了另一个(用户和管理员)帐户,它们没有问题。
我卸载并重新安装了 2012 版的 SQLLocalDB.msi,但我没有运气。你有什么想法和解决办法吗?
我收到多个错误LocalDB
(启动错误,无法从 SQL Server Management Studio 创建数据库以及尝试恢复备份时出现多个 问题),我发现的所有修复程序都没有帮助。在我看来,所有错误的根源都没有正确设置权限。
现在,一个简单的 DDL 表创建脚本可以从 SQL Server Management Studio 正常工作,并在我的用户帐户文件夹的根目录中创建数据库(如此处所述)。然而,Instances 文件夹(D:\Users\[My name]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances
尽管在安装带有高级服务的SQL Server Express 时我在另一个位置指定了 DATA 文件夹 - 仅.mdf
存储标准 SQL Server Express文件,但不存储LocalDB
实例)在权限方面似乎存在问题(与帐户相反) root) 因此,也为了将我的数据库文件放在我的项目中的某个位置,我想将 Instances 文件夹移动到另一个地方。这可能吗?我什至没有找到相应的注册表项。
我正在使用 SQL Server Express 2012 以及相同版本的 SSMS(安装了最新更新)。
数据库设置页面向我抛出了一个错误,无法编辑或查看那里的任何配置。我让 Windows Update 再次检查更新,但有一些 SQL Server Express 的更新没有安装(尽管我确定我之前选择了要安装的所有内容),所以我安装了它们。这使我可以进入设置页面。
我试图将 LocalDB 实例的根文件夹设置到其他地方,但是对于我尝试的每个文件夹,我都收到访问被拒绝错误,即
更改设置“Microsoft.SqlServer.Management.Smo.ObjectKeyBase”失败。(Microsoft.SqlServer.Smo)
- - - - - - …
SQL Server 2019 已发布,但我似乎没有可供下载的 LocalDB 版本。有谁知道是否会发布 LocalDB 版本,或者 2017 年是否是最后一个版本?
我下载了适用于 MS SQL Server 2014 Express 的 LocalDB 和 Management Studio,以便我可以在本地机器上练习。但是,当我打开 Management Studio 并尝试浏览到 localDB 以连接到启动创建的数据库时,我无法找到 localDB。
有人可以帮助我吗?
就像之前在这里发布的关于“开发人员应该能够查询生产数据库吗? ”的问题的脉络一样,我想了解您对另一个特别烦人的话题的看法!
许多公司阻止开发人员在开发机器上安装 SQL Server Express 等,而是提倡使用集中式开发 SQL Server。
具体来说,这样做是为了确保:
对我来说,所有这些论点都特别无效,也许修补程序除外。但是如果本地机器上的数据库纯粹用于开发活动,而不是测试,那么当应用程序通过测试/UAT 等进入生产时,补丁将被证明。
排序规则似乎不是一个有效的理由,好像这是数据库的一个问题,它应该在创建时设置。据我所知,只有 SharePoint 和 SCCM 有这方面的问题;)
现在,假设它仅用于开发,并且数据库不会“移动”到生产中,唯一的移动是:
任何人都可以看到任何问题吗?我错过了什么吗?
我想最大的问题之一是本地数据库实例过时的能力,但那是软件管理问题,而不是 DBA 的 IMO。
process security sql-server best-practices sql-server-localdb
#
LocalDB 实例是否支持SQL Server 临时表(以 为前缀)?
我在全新的 NUC 上安装了 Windows 11,然后安装了所有更新。安装Visual Studio 2022 CE
并SSMS (v 18.10)
我尝试启动 localDB,假设它是作为 Visual Studio 2022/SSMS 的一部分安装的,当(localdb)\\mssqllocaldb
在 SSMS 中输入\xc2\xa0 时,它收到错误\xc2\xa0
Cannot connect to (localdb)\\mssqllocaldb.\n\nSQL Network Interfaces, error: 50 - Local Database Runtime error occurred.\xc2\xa0\n\nError Number: -1983577846\n
Run Code Online (Sandbox Code Playgroud)\n然后我验证/尝试启动实例,如下所示
\nsqllocaldb stop mssqllocaldb\nsqllocaldb delete mssqllocaldb\nsqllocaldb start "MSSQLLocalDB"\n
Run Code Online (Sandbox Code Playgroud)\n当输入最后一个命令时,我收到错误\xc2\xa0
\n由于以下错误,LocalDB 实例“MSSQLLocalDB”启动失败:\n无法创建自动实例。有关错误详细信息,请参阅 Windows 应用程序事件日志。
\n我查看了下找到的日志文件
\n....\\AppData\\Local\\Microsoft\\Microsoft SQL Server 本地 DB\\Instances\\MSSQLLocalDB
\n并查看一些错误文件并按日期选择最新的一个。
\n它包含信息,最后一行是\xc2\xa0
\n2021-12-11 10:48:42.67 spid10s \xc2\xa0 \xc2\xa0 There have been …
Run Code Online (Sandbox Code Playgroud) 鉴于现存定义的SQL Server 2012的的LocalDB作为
SqlLocalDB 是 SQL Server 2012(和未来版本)的本地、低开销数据库引擎,它允许开发人员专注于开发而不是实例配置或安全。
我很好奇从 LocalDB 开发到生产实例的路径会是什么样子,尤其是考虑到用户实例(大约 SQL 2005)的问题,并且试图将其中一个实例提升到生产和开发人员会忘记哪个实例他们实际上是在努力推广。对StackOverflow的快速搜索以各种形式暴露了此类问题。在这种情况下,LocalDB 是否改进/简化了部署?
sql-server ×8
installation ×2
ssms ×2
powershell ×1
process ×1
security ×1
sqlcmd ×1
t-sql ×1
tempdb ×1