天道酬勤,学无止境

为什么我的 tempdb 在服务器重新启动时会重置权限?(Why does my tempdb reset permissions when the server is rebooted?)

问题

过去两次我们重新启动了我们的 sql server,我们的网站已经关闭。 原因似乎是因为 tempdb 正在重新创建,并且 ASPState 用户正在失去对 tempdb 的读/写权限(它是一个 ASP 站点,会话数据存储在 sql server 中)

直到大约两周前,这还不是问题。 有谁知道如何防止 sql server 在重新启动后重置 tempdb 权限? 或者为什么这只是最近才开始发生? 我们使用的是 MS SQL Server 2005。

回答1

首先,您不应该直接为 tempdb 分配权限。 出于显而易见的原因,它在每次重新启动时都会重新创建。

这实际上提出了一个问题:为什么您仍然需要对该数据库具有直接权限?

除了能够连接到 sql server 来创建临时表之外,您不需要任何权限。 但是,如果您在 tempdb 中创建真正的表,那么我强烈建议您将其更改为为此目的使用专用数据库。

更新
根据马丁的评论,我只能说哇。 我什至不会认为这是一种选择。

好吧,现在我已经从震惊中恢复过来了。

在 sql server 中创建一个按计划执行的新作业。 计划应设置为“SQL Server 代理启动时自动启动”。 该作业应重新创建必要的 tempdb 权限。

简而言之,当服务器重新启动时,SQL Server 代理将重新启动(前提是服务是这样设置的)。 当它重新启动时,它将启动这项工作,然后修复您的权限。 我希望该站点仅比 SQL Server 完全重新启动所需的时间多几秒钟。

回答2

我知道这是一个老问题,但发现了一些关于重启时 tempdb 行为的新信息。 tempdb 本质上是从“模型”数据库重新创建的,这就是对它的所有更改都丢失的原因。 如果您进行更改以保留更改,即使在重新启动后也对“模型”数据库进行与“临时数据库”相同的更改。 请看以下内容:tempdb 在启动时是否从模型中重新创建?

回答3

Model 数据库用作 TempDB 的模板。 将用户和权限添加到模型中,相同的用户和权限将在 TempDB 上使用。 我并不是说这是适用于所有情况的最佳解决方案,但它适用于应用程序需要特定 TempDB 访问的情况。

回答4

在 sql Server 上创建一个启动脚本,如下所示:

use master
go
drop proc AddAppTempDBOwner
go
create proc AddAppTempDBOwner as
declare @sql varchar(200)
select @sql = 'use tempdb' + char(13)
+ 'exec sp_addrolemember ''db_owner'', ''app'''
exec (@sql)
go
exec sp_procoption 'AddAppTempDBOwner', 'startup', 'true'
go 
回答5

这是一个创建启动存储过程的脚本,它循环登录并在tempdb 中创建用户作为 db_owner。 此脚本没有硬编码登录。

因此,即使在 SQL 机器重新启动后,所有 SQL 登录名都将拥有访问tempdb 的权限。

USE [master]
GO
IF EXISTS ( SELECT *
FROM sysobjects
WHERE  id = object_id(N'AddUsersToTempDb')
    and OBJECTPROPERTY(id, N'IsProcedure') = 1 )
BEGIN
    DROP PROCEDURE AddUsersToTempDb
END
GO
CREATE PROCEDURE AddUsersToTempDb
AS
DECLARE @loginname as NVARCHAR(100);
DECLARE Login_Cursor CURSOR FOR  
    SELECT loginname
FROM master..syslogins
OPEN Login_Cursor;
FETCH NEXT FROM Login_Cursor INTO @loginname;
WHILE @@FETCH_STATUS = 0  
    BEGIN
    IF (@loginname <> 'sa' AND (NOT @loginname LIKE '##%') AND (NOT @loginname LIKE '%\%'))
    BEGIN
        PRINT @loginname
        IF EXISTS(SELECT * FROM [tempdb].sys.database_principals WHERE type_desc = 'SQL_USER' AND name = @loginname)
        PRINT '  - user already exists'
    ELSE
        BEGIN
            PRINT '  - creating user'
            DECLARE @Sql VARCHAR(MAX)
            SET @Sql =
            'USE Tempdb' + char(13) + 
            'CREATE USER ' + @loginname + ' FOR LOGIN ' + @loginname  + char(13) +
            'EXEC sp_addrolemember db_owner, ' + @loginname
            EXEC (@Sql)
        END
    END
    FETCH NEXT FROM Login_Cursor INTO @loginname;
END;
CLOSE Login_Cursor;
DEALLOCATE Login_Cursor;
GO

EXEC sp_procoption 'AddUsersToTempDb', 'startup', 'true' 
GO
回答6

SQL Server 中的 tempdb 数据库(从我读过、听过或体验过的所有内容中)在每次服务启动时完全删除并重新创建。 因此,存储在该数据库中或写入该数据库的任何内容,包括角色、用户或其他访问权限设置,都将被清除。 除非在实例启动时使用一些繁琐的代码来设置/重置它们,否则我认为您无法解决此问题。 (我认为模型数据库中设置的任何内容在创建时都不会被复制到 tempdb,但我从来没有想过这个......)

是否将任何此类设置写入该数据库? 您确定您的系统最近没有进行过更改或更新吗? 可能相关的是,SQL 实例多久停止和重新启动一次? (如果不重新启动,SQL 会运行几个月,如果不是很明智的话,这种情况并不少见……)

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 在 SQL Server 中启动时添加 tempdb 项目(Adding tempdb items on startup in SQL Server)
    问题 如何在 SQL Server 启动时向 tempdb 添加一些项目? 我不是这方面的专家,但我们的 ASP SessionState 存储在 DB 中,出于某种原因,用于会话状态的 tempdb 项目在服务器重新启动时会被删除。 我不仅需要重新创建项目,而且还必须重新创建用户到 tempdb 的映射。 我有一个执行此操作的脚本,但我不知道如何在 SQL 启动时运行它 -- Use TempDB use tempdb go -- Create Temp tables if they don't exist IF NOT EXISTS( SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME = 'ASPStateTempSessions') BEGIN EXECUTE [ASPState].[dbo].[CreateTempTables] END -- If ASPSessionState user isn't mapped to temp db, map it IF IS_MEMBER('ASPSessionState') IS NULL create user ASPSessionState from login ASPSessionState -- Give
  • Django、RabbitMQ 和 Celery - 为什么在我更新开发中的 Django 代码后,Celery 会运行旧版本的任务?(Django, RabbitMQ, & Celery - why does Celery run old versions of my tasks after I update my Django code in development?)
    问题 所以我有一个 Django 应用程序,它偶尔会向 Celery 发送一个任务以进行异步执行。 我发现当我在开发中处理我的代码时,Django 开发服务器知道如何自动检测代码何时发生更改,然后重新启动服务器以便我可以看到我的更改。 但是,我的应用程序的 RabbitMQ/Celery 部分没有注意到这些类型的开发变化。 如果我更改稍后将在 Celery 任务中运行的代码,Celery 仍将继续运行旧版本的代码。 我可以让它接受变化的唯一方法是: 停止芹菜工人停止 RabbitMQ 重置RabbitMQ 启动RabbitMQ 将用户添加到我的 Django 应用程序配置为使用的 RabbitMQ 为此用户设置适当的权限重新启动芹菜工人 然而,这似乎是一种比我应该采取的更为激进的方法。 我可以使用更轻量级的方法吗? 回答1 我发现当我在开发中处理我的代码时,Django 开发服务器知道如何自动检测代码何时发生更改,然后重新启动服务器以便我可以看到我的更改。 但是,我的应用程序的 RabbitMQ/Celery 部分没有注意到这些类型的开发变化。 您在此处描述的内容完全正确且符合预期。 请记住,Python 将使用模块缓存,因此您需要重新启动 Python 解释器才能使用新代码。 问题是“为什么 Celery 不选择新版本”,但这就是大多数库的工作方式。 然而,Django
  • 为什么 fiddler 不安装我的证书 Windows 8? - 无法将 Windows 配置为信任 Fiddler 根证书(Why won't fiddler install my certificate windows 8? - unable to configure windows to trust Fiddler Root certificate)
    问题 我有一个应用程序正在调用 twitter,我需要检查流量,以便我可以了解有关 oAuth 的更多信息。 当我双击 ssl 流量时,我会看到一个黄色框,提示我去更改选项(顺便说一下,我通过代理运行我的应用程序)。 在阅读了在我的机器上使用 fiddler 创建的证书后,我点击了链接,让 fiddler 按照这些说明在我的机器上安装证书...... http://docs.telerik.com/fiddler/configure-fiddler/tasks/configurefiddlerforwin8 然而,而不是这种情况发生...... 我收到此错误消息... “无法将 Windows 配置为信任 Fiddler Root 证书”这里是一个屏幕截图.... 当我按照建议检查日志时(虽然很混乱,因为我认为日志与每个单独的请求有关),无论如何我看到了这个...... 我什至尝试过手动安装证书无济于事。 希望有人可以帮助我在 Windows 8 上使用 fiddler/ssl 解密! :-) 更新:为了回应他在下面的回答中提出的 Eric 问题...... 嗨,埃里克,感谢您的回复。 1) 弹出一个框,上面写着“证书信任”,这是我在上面截取的屏幕截图的框。 是那个框告诉我检查日志。 2)我有一个帐户,当我检查我的用户时,它说我是我的用户名下的管理员。 3)我试图以管理员身份运行
  • 重启后不触发警报(Alarm doesn't trigger after reboot)
    问题 我有一个警报,每 15 分钟重置一次数据连接。 问题是,一旦手机重新启动,应用程序就会被杀死并且警报(服务)不再触发。 (这不是重复的,关于 SO 的其他类似问题不能解决我的问题。) <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <receiver android:name="com.sang.mobiledata.ResetBroadcastReceiver" android:exported="false" > <intent-filter> <action android:name="com.sang.mobiledata.IntentAction.RECEIVE_RESETCONN_UPDATE" /> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> 广播接收器: public void onReceive(Context context, Intent intent) { // if(CONN_ACTION.equals(intent.getAction())) { if (intent.getAction()
  • 为什么第一次启动服务后这个查询很慢?(Why is this query slow the first time after I start the service?)
    问题 好的。 这是我尝试运行的内容: USE tempdb; SELECT TOP 1000000 IDENTITY(INT, 1, 1) Number INTO Numbers FROM sys.objects s1 CROSS JOIN sys.objects s2 CROSS JOIN sys.objects s3 CROSS JOIN sys.objects s4; 这是“让我成为数字表”查询之一。 这就是问题所在。 如果我在 SQL Server 服务(重新)启动后立即运行它,它会花费很长时间。 不会像十秒钟那样永远,我希望它更快。 永远一样,我不小心让它超过了两个小时,但仍然不得不杀死它。 我想它只是永远不会回来。 通常在我的机器上运行它需要不到两秒钟的时间。 但是,如果我这样做: USE tempdb; SELECT TOP 1000000 IDENTITY(INT, 1, 1) Number INTO Numbers FROM sys.objects s1 CROSS JOIN sys.objects s2 CROSS JOIN sys.objects s3; DROP TABLE Numbers; SELECT TOP 1000000 IDENTITY(INT, 1, 1) Number INTO Numbers FROM sys.objects s1 CROSS
  • Azure VM 临时存储的临时性如何?(How temporary is Azure VM Temporary Storage?)
    问题 创建 Azure VM 时,它会创建一个名为“临时存储”的 D: 驱动器。 我不清楚这是多么短暂。 它是在重新启动、启动/停止之间重置,还是仅在重新创建映像时重置? 还是随意? 另外,这个临时存储有哪些用例? 回答1 重置、重新启动、故障转移等可以擦除它。 它仅用于交换文件等。 Azure 虚拟机中 SQL Server 的性能最佳实践 临时磁盘标记为D:驱动器的临时存储驱动器不会持久保存,也不会保存在 Windows Azure Blob 存储中。 它主要用于页面文件,不能保证其性能是可预测的。 管理任务(例如更改虚拟机大小)会重置D:驱动器。 此外,当虚拟机故障转移时,Windows Azure 会擦除临时存储驱动器上的数据。 不建议使用 D: 驱动器存储任何用户或系统数据库文件,包括tempdb 。 编辑:有趣的是,上面的内容现在已更新为下面的内容,如果您使用的是 D 系列虚拟机,则可以将您的 tempdb 存储在上面。 标记为D:驱动器的临时存储驱动器不会持久保存到 Azure blob 存储。 不要将您的数据或日志文件存储在D:驱动器上。 使用 D 系列虚拟机 (VM) 时,仅将tempdb和/或缓冲池扩展存储在D驱动器上。 与其他 VM 系列不同,D 系列 VM 中的 D 驱动器是基于 SSD 的。
  • 对等方重置连接:mod_fcgid:从FastCGI服务器读取数据时出错(Connection reset by peer: mod_fcgid: error reading data from FastCGI server)
    问题 我在PHP上遇到问题,我的应用程序试图运行php备份文件并突然收到HTTP错误500代码。 我已经检查了日志,这说明了什么。 [2012年8月28日星期二14:17:28] [警告] [客户端xxxx](104)对等方重置的连接:mod_fcgid:从FastCGI服务器读取数据时出错,引用者:http://example.com/backup/backup.php [2012年8月28日星期二14:17:28] [错误] [客户端xxxx]脚本标头的结尾过早:backup.php,引荐来源:http://example.com/backup/backup.php 有人知道如何解决这个问题吗? 我真的被困在这里,无法在互联网上找到解决方案。 希望任何人都可以分享他们的知识。 谢谢。 詹姆士 回答1 我设法通过添加FcgidBusyTimeout解决了这个问题。 万一有人对我有类似的问题,以防万一。 这是我在apache.conf上的设置: <VirtualHost *:80> ....... <IfModule mod_fcgid.c> FcgidBusyTimeout 3600 </IfModule> </VirtualHost> 回答2 我在Apache2日志文件中有非常相似的错误: (104)Connection reset by peer: mod_fcgid
  • 错误TF30063:您无权访问…\ DefaultCollection(Error TF30063: You are not authorized to access … \DefaultCollection)
    问题 我在Visual Studio 2012的一个项目中使用了TFS预览(Team Foundation Service)。我的大多数项目中都使用了本地TFS服务器。 当我在使用TFS预览后使用本地TFS并返回使用TFS预览时,出现此错误: TF30063:您无权访问MyProject \ DefaultCollection。 如果我去团队→断开TFS的连接,然后再次连接到TFS预览,我可以看到一个“正在加载标识符”加载屏幕,但是最后我无法输入我的凭据到TFS预览(我Microsoft帐户),因此,仍然会出现TF30063错误。 我怀疑这与我的Microsoft帐户(即Live ID)有关。 我使用在TFS预览中使用的相同Microsoft帐户登录到Windows。 我已经使用其他Microsoft帐户登录到其他站点(Windows开发中心,MSDN等),但是我验证了是否注销这些服务并使用正确的Microsoft帐户重新登录,但在以下情况下仍会出现TF30063错误:我尝试从Visual Studio登录到TFS预览。 回答1 我通过在Visual Studio中使用“浏览器”->“其他Windows”->“ Web浏览器”来解决此问题。 Ctrl+Alt+R (或者在VS2010之前的VS版本中为* Ctrl+W, W *)导航到TFS页面并注销错误的帐户并重新登录。 对我来说
  • 普通表还是全局临时表?(Normal table or global temp table?)
    问题 我和另一位开发人员正在讨论哪种类型的表更适合我们的任务。 它基本上将成为我们将在一天结束时截断的缓存。 就个人而言,我认为没有任何理由为此使用普通表以外的任何东西,但他想使用全局临时表。 一个或另一个有什么优势吗? 回答1 如果这只是临时数据,您可以在服务重新启动时丢失,请使用tempdb的普通表,如果数据不是临时数据,则使用用户数据库。 tempdb在日志记录要求方面稍微更有效。 一旦所有引用连接都是创建表的连接关闭,全局临时表就会被删除。 编辑:遵循@cyberkiwi 的编辑。 BOL 确实明确表示 全局临时表在创建后对任何用户和任何连接可见,并在引用该表的所有用户与 SQL Server 实例断开连接时被删除。 在我的测试中,我也无法获得这种行为。 连接 1 CREATE TABLE ##T (i int) INSERT INTO ##T values (1) SET CONTEXT_INFO 0x01 连接 2 INSERT INTO ##T VALUES(4) WAITFOR DELAY '00:01' INSERT INTO ##T VALUES(5) 连接 3 SELECT OBJECT_ID('tempdb..##T') declare @killspid varchar(10) = (select 'kill ' + cast(spid as
  • 存储过程何时重新编译?(Sql Server)(When does a Stored Procedure recompile?(Sql Server))
    问题 我猜, 当我在存储过程中使用临时表时,存储过程会自动重新编译。 请给我其他的可能性。 回答1 优化 SQL Server 存储过程以避免重新编译 删除并重新创建存储过程在 CREATE PROCEDURE 或 EXECUTE 语句中使用 WITH RECOMPILE 子句更改任何引用对象的架构针对存储过程引用的表运行 sp_recompile 系统存储过程恢复包含存储过程或存储过程引用的任何对象的数据库从缓存中删除的存储过程计划如果存储过程引用的表中有足够多的行已更改,则存储过程将重新编译。 SQL Server 将重新编译存储过程以确保执行计划具有表的最新统计信息。 如果开发人员将数据定义语言操作与数据操作语言操作交错放置,则存储过程将重新编译。 这通常是在整个代码中创建和引用临时对象时引起的。 回答2 全部都在这里:“重新编译执行计划”部分下的执行计划缓存和重用 回答3 此处的其他 2 个答案(由 @KM. 和 @gbn 提供)列出了 SQL“使”缓存计划“无效”的原因。 我所说的“无效”是指某些原因导致现有计划需要重新编译。 但是,我相信重新编译的#1 反复出现的原因是缓存计划不再存在。 这可能是由于: 缓存上的内存压力,以便为新生成的计划腾出空间。 也许您有大量随机的临时/准备好的脚本运行,并且几乎没有空间来保留为您的存储过程创建的计划服务器已重置
  • iPhone:为什么我的应用在设备上重新启动时会恢复而不重启?(IPhone: Why does my app resume and not restart when I relaunch it on device?)
    问题 我不知道这是 iOS4 的东西还是什么,但基本上说我的应用程序中有几个屏幕。 现在,当我点击主页按钮并重新启动我的应用程序时,它会在我离开的屏幕上启动应用程序。 这几乎就像它没有重新启动我的应用程序,而是恢复它。 我不希望它这样做。 (我希望它显示我的启动画面主菜单等) 有谁知道如何解决这个问题? 谢谢 回答1 在 iOS 4 中,当按下主页按钮时,应用程序会暂停(未终止)。 当您“重新启动”应用程序时,它会被简单地移到前台。 如果您希望应用在用户按下主页按钮时终止,请在应用的Info.plist文件中将UIApplicationExitsOnSuspend的值设置为YES 。 如果您这样做,当用户点击主页按钮时applicationWillTerminate:将调用您的应用程序委托的方法,然后您的应用程序将终止。 回答2 我想这应该对你有帮助。 基本上你需要做的是禁用iOS4的多任务功能。 http://www.iphonedevsdk.com/forum/iphone-sdk-development/60989-disable-multi-tasking-ios4-application.html 回答3 这正是你昨天在幕后工作时问到的多任务处理。 如果您想要这种行为,则需要选择退出。 在此处查看您之前问题的答案。 你读过那里的答案吗???
  • 为什么mysql max_allowed_pa​​cket 自动重置为1m(Why mysql max_allowed_packet reset to 1m automatically)
    问题 我设置 SET GLOBAL max_allowed_packet=16777216; 并且 [mysqld] max_allowed_packet = 16M 我通过以下命令检查了 max_allowed_pa​​cket SHOW VARIABLES LIKE 'max_allowed_packet'; 并且值为 = 16777216 但是几天后max_allowed_pa​​cket 自动重置为1M。 回答1 我很确定你被黑了。 几个月来我遇到了同样的问题。 我打开了general_log,终于找到了一些代码: connect root@someipaddress on Query select 0x4D5A900..........(verylong) Query select sys_exe('cmd /c c:/windows/nbvqc4.vbs') ......... set global max_allowed_packet 1024 ........ 建议:更改您的root密码。 回答2 MySQL 有 GLOBAL 变量和 SESSION 变量,还有 my.cnf。 GLOBAL 变量在启动时从 my.cnf 初始化,许多变量在连接时从 GLOBAL 值中取出并复制到 SESSION 中。 如果您更改 GLOBAL 值,SESSION 会保留它自己的值—
  • 我该如何解决“无效的许可证数据。 需要重新安装。” C#2010 Express中出现错误?(How do I fix an “Invalid license data. Reinstall is required.” error in Visual C# 2010 Express?)
    问题 我尝试将Visual C#2010 Express版安装到我的PC上,但是每当尝试运行它时,都会出现错误消息。 无效的许可证数据。 需要重新安装。 我已经尝试过重新安装它,并且该消息仍然存在。 操作系统是Vista Home Premium。 我已经安装了VC# 2008 Express 。 回答1 这在Vista上对我有用。 它基于MS上的变通方法:http://connect.microsoft.com/VisualStudio/feedback/details/520110/invalid-license-data-reinstall-is-required 下载subinacl命令行工具 http://www.microsoft.com/downloads/zh-CN/confirmation.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&displaylang=en 运行以下命令: subinacl /subkeyreg HKEY_CLASSES_ROOT\Licenses /setowner=everyone subinacl /subkeyreg HKEY_CLASSES_ROOT\Licenses /grant=everyone=f 再次启动VS 2010 Express,这一次它要求提供许可证密钥。
  • Android INSTALL_FAILED_UID_CHANGED(Android INSTALL_FAILED_UID_CHANGED)
    问题 我一直在使用Nexus 4在Android上进行调试,但是最近在这里遇到了此错误。 在研究了此错误之后,似乎是应用程序未正确删除的问题。 我正在调试的应用程序在其他Android设备以及仿真器上都可以正常运行,此错误仅在Nexus 4上出现。同样的问题。 我还检查了settings-apps来检查它是否确实已卸载。 有谁知道如何解决这个问题? 根据某些用户的说法,我需要root用户访问权限才能正确删除数据/数据,这是真的吗? 还是有其他解决方法? 回答1 有时您还必须卸载数据文件夹。 对于我来说,我在用户空间的包com.kikin.cts ,并在文件夹目录/data/data/com.kikin.cts 。 继续获取INSTALL_FAILED_UID_CHANGED ,但是在删除数据文件夹后,该错误消失了。 回答2 对于有根设备: 运行以下命令 adb rm -rf /data/data/<your.package.name> 对于非root用户的设备: 更改应用程序的ApplicationId。 请参考此链接以更改ApplicationId。 生成并安装该应用程序。 应用程序将被成功安装,因为它被视为新应用程序。 现在卸载该应用程序。 这将清除数据。 现在将ApplicationId更改为上一个。 生成并安装。 魔术..它将安装。 回答3 重新启动设备,然后清除项目。
  • 为什么 VS 2008 IDE 不记得我的偏好?(Why doesn't VS 2008 IDE remember my preferences?)
    问题 这是一个非常小的问题,我只在编译时问...;) 出于某种原因,当我关闭并重新打开时,我的 VS 2008 IDE 不记得我的窗口首选项 - 它会重置窗口宽度、位置、外观等。 秘密开关在哪里,以便我的 IDE 保持我想要的样子? 回答1 尝试重置 Visual Studio Tools->Import and Export Settings->Reset All Settings 或者 devenv.exe /resetsettings 回答2 窗口位置存储在以下文件中: %APPDATA%\Application Data\Microsoft\VisualStudio\9.0\windows.prf 我猜你没有这个文件的写权限,或者什么。 无论如何,如果你能以某种方式删除这个文件,它会在你下次启动你的 VS 时重新生成它,窗口处于默认位置。 回答3 您是否打开了多个 VS 2008 实例? 最后关闭实例的设置将覆盖之前保存的设置。 回答4 初始 VS 屏幕是否出现,要求“环境”类型? 你在什么操作系统上运行 VS? 更多细节可能有助于提供一些提示...... 回答5 安装某些插件后,这发生在我身上。 也许尝试禁用您的插件,看看它是否仍然发生? 除此之外,VS本身在这方面并没有给我带来任何麻烦。 当然,您必须以预期的方式退出 VS 并让它有足够的时间来保存其设置。
  • Amazon ssh_exchange_identification:读取:对等方重置连接:更改权限时(Amazon ssh_exchange_identification: read: Connection reset by peer: when changing permissions)
    问题 我成功地继续使用我的亚马逊 ec2,并且我一直在尝试。 我发现我需要总是对所有内容运行 sudo 很烦人,所以我决定做的是转到路由目录并更改所有内容的权限以进行写入、写入和执行。 我这样做了以下 chmod -R 777 . 然后我退出了服务器。 下次我尝试登录时,我得到了 "ssh_exchange_identification: read: Connection reset by peer" 我怎样才能解决这个问题? 谢谢 回答1 我的解决方案可能是微不足道的,但谁知道它可以帮助谁: 我只是在浏览器中重新启动了我的 EC2 实例(AWS -> EC2 仪表板 -> 实例 ->(选择您的实例)->(单击操作下拉列表)-> 实例状态 -> 重新启动 在再次尝试 ssh 连接命令之前,您可能需要等待一分钟。 希望能帮助某人。 回答2 繁重的服务器负载 也见过这种情况发生在服务器负载过重时,例如,蛮力攻击。 增加 sshd 可以运行的连接数。 http://edoceo.com/notabene/ssh-exchange-identification 回答3 在我的情况下,停止并开始工作。 我只是在浏览器中重新启动了我的 EC2 实例(AWS -> EC2 仪表板 -> 实例 ->(选择您的实例)->(单击操作下拉列表)-> 实例状态 -> 停止 然后
  • 由于登录失败,SQL Server 2012 无法启动(SQL Server 2012 can't start because of a login failure)
    问题 我最近在全新的 Windows 7 安装上安装了 Microsoft SQL Server 2012,但是每当我想运行服务器时,我都会收到以下错误: 错误 1069:由于登录失败,服务未启动。 以下用户配置为启动服务: NT Service\MSSQL$SQLEXPRESS 我该如何解决这个问题? 回答1 对此的答案可能与完全成熟的 SQL Server (NTService\MSSQLSERVER) 的问题相同,即重置密码。 具有讽刺意味的是,没有密码。 步骤是: 右键单击服务 mmc 中的服务单击属性单击登录选项卡密码字段中似乎有条目... 清空两个密码字段点击“确定” 这应该重新授予对服务的访问权限,它应该再次启动。 奇怪的? 注意:如果问题在几个小时或几天后再次出现,那么您可能有一个覆盖您的设置的组策略,并且它会再次出现并立即消失。 回答2 这发生在我身上。 域上的一项策略剥夺了 SQL Server 用户帐户的“作为服务登录”的权限。 您可以使用 JLo 的解决方案解决此问题,但没有专门解决组策略问题,下次在机器上刷新组策略时它会返回。 导致我出现问题的具体策略是:在计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 用户权限分配:作为服务登录 您可以通过从命令行运行命令“rsop”来查看哪些策略正在应用于您的计算机。
  • 重新获得WAMP上PHPMyAdmin丢失的MySQL密码的访问权限(Regaining access to lost MySQL password for PHPMyAdmin on WAMP)
    问题 我在PHPMyAdmin中更改了我的“ root” @“ localhost”帐户的密码,并且喜欢(此人在这里询问),并将自己锁定在浏览器中的PHPMyAdmin之外。 我正在使用WAMP 2.5。 针对该问题提供的解决方案对我不起作用,因为不幸的是,我丢失了重新分配给root用户的密码。 一些解决方案要求人们通过命令行(包括此源)来重置密码,而我已经尝试通过Windows命令行进行密码设置,但没有成功,因为我现在没有特权: mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mynewpassword'); ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql' WAMP带有MySQL控制台,但是我无法使用它,因为它会提示我输入密码,正如我之前所说,不再使用。 该视频说明了如何更改密码,并且与上述StackExchange答案中的答案一致,但是显然,我现在需要另一种方法来执行此操作,因为我不知道我会因为该人的警告而失去访问权限。 我将不胜感激任何建议,如果这是新手要问的话,我深表歉意。 我只是想使用堆栈进行Web开发,而通过WAMP配置对LAN站点的访问是一个冒险,因此,如果可能的话,我希望不需要重新安装所有内容。
  • PostgreSQL:为什么psql无法连接到服务器?(PostgreSQL: Why psql can't connect to server?)
    问题 我输入了psql ,我得到了: psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? 我使用了sudo netstat -nlp | grep 5432 sudo netstat -nlp | grep 5432查看状态,但什么也没显示。 我在网上搜索,有人告诉我修改pg_hba.conf但locate该文件。 而且我还尝试了此命令sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432 。 不行 回答1 该错误表明psql实用程序找不到套接字来连接到数据库服务器。 您可能没有在后台运行数据库服务,或者套接字位于其他位置,或者可能需要修复pg_hba.conf 。 步骤1:验证数据库正在运行 该命令可能会因您的操作系统而异。 但是在大多数* ix系统上,以下方法可以工作,它将在所有正在运行的进程中搜索postgres ps -ef | grep postgres 在我的系统上,mac osx会吐出来 501 408
  • 为什么无法连接到SQL Server 2012 LocalDB共享实例?(Why can't I connect to a SQL Server 2012 LocalDB shared instance?)
    问题 我正在尝试在Windows 7 x64计算机上设置SQL Server 2012 LocalDB(RTM,x64)共享实例,但似乎无法连接到共享实例。 我正在使用管理员命令提示符进行所有设置。 这是我创建实例的方式: sqllocaldb create MyInstance 产生响应: LocalDB instance "MyInstance" created with version 11.0. 到现在为止还挺好。 现在,我共享实例: sqllocaldb share "MyInstance" "MySharedInstance" 结果是: Private LocalDB instance "MyInstance" shared with the shared name: "MySharedInstance". 看起来还不错。 至此,我的info命令产生: .\MySharedInstance MyInstance v11.0 使用管理员或非管理员命令提示符从所有者帐户(管理员)连接到实例似乎正常。 但是,当我以普通用户身份(而不是Windows管理员)登录并尝试连接时,事情发生了变化: sqlcmd -S (localdb)\.\MySharedInstance 结果是: Sqlcmd: Error: Microsoft SQL Server Native Client