标签: errors

在 psql 错误消息中获取 SQLSTATE

我有以下问题。

SELECT * FROM tgvbn();
ERROR:  function tgvbn() does not exist
LINE 1: SELECT * FROM tgvbn();
                      ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)

由于官方文档的附录 A只说明了 error_codes 和条件名称,而没有说明实际的消息,因此只能猜测“没有函数匹配...”指的是42883 / undefined_function. 我可以设置log_error_verbosity = verbosepostgresql.conf-但会影响日志,不返回到客户端中的消息:

控制在服务器日志中为记录的每条消息写入的详细信息量。

好吧,我可以查阅日志以获取这条信息,但是有没有办法将其包含在错误消息中?

postgresql client psql errors

9
推荐指数
1
解决办法
3037
查看次数

在没有故障转移群集的环境中 Windows 更新后 AlwaysOn 可用性组错误

今天早上我们的 SQL Server 服务宕机,导致我们的一些网站宕机。当我去检查 Windows 事件查看器时,我看到以下错误:

数据库“master”的脚本级别升级失败,因为升级步骤“SSIS_hotfix_install.sql”遇到错误 942,状态 4,严重性 25

无法恢复主数据库。SQL Server 无法运行。从完整备份恢复主文件、修复它或重建它。有关如何重建 master 数据库的详细信息,请参阅 SQL Server 联机丛书。

我做的第一件事就是在谷歌上搜索错误。我最终找到了一个包含确切问题和修复方法的论坛条目(也在我正在寻求解决方案的博客条目上)。该问题与 AlwaysOn 可用性组有关,修复要求您:

  1. 使用 Trace Flag 902 启动 SQL Server 服务:

    网络启动 MSSQL$InstanceName /T902

  2. 打开 SQL Server Management Studio,转到可用性组并从可用性数据库中删除 SSISDB

  3. 打开新查询,执行 SSIS_hotfix_install.sql 脚本,该脚本可以在 \Program Files\Microsoft SQL Server\MSSQL11.MSSQL$InstanceName\MSSQL 下的安装文件夹中找到

  4. 停止 SQL Server 服务:

    网络停止 MSSQL$InstanceName

  5. 从 SQL Server 配置管理器启动 SQL Server 服务

  6. 将 SSISDB 添加回可用性组

但是,我无法通过第 2 步,因为当我尝试展开“AlwaysOn High Availability”文件夹时出现以下错误:

在您可以在此实例上创建可用性组之前,必须为服务器实例 'InstanceName' 启用“AlwaysOn 功能”。

然后我按照说明转到“SQL Server 配置管理器”和“AlwaysOn High Availability”选项卡以打开该功能。这次该功能变灰了,并且有一条消息说该计算机节点不在故障转移集群中。 …

sql-server upgrade sql-server-2012 errors

9
推荐指数
1
解决办法
1555
查看次数

链接服务器连接开始失败,并出现“无法生成 SSPI 上下文... SQL Server 网络接口:登录尝试失败”错误?

问题

我在同一个域中有两个 SQL Server 2016 标准版服务器。ServerA有两个链接服务器连接设置到ServerB

第一个链接服务器连接使用专用的远程SQL 登录安全上下文。那个一直是并且仍然工作正常。

第二个连接使用“登录的当前安全上下文”,它是ServerA 上的Windows 身份验证 (AD) 登录。直到今天,这也运行良好。

今天突然间,连接到 ServerA 然后尝试运行使用第二个链接服务器连接的查询的每个人最终都会遇到以下错误:

链接服务器“LinkedServerName”的 OLE DB 访问接口“SQLNCLI11”返回消息“无法生成 SSPI 上下文”。消息 -2146893044,级别 16,状态 1,第 0 行 SQL Server 网络接口:登录尝试失败

此外,用户目前可以直接连接到 ServerA 和 ServerB,甚至可以直接对 ServerB 上的对象执行查询,但是当他们尝试通过 ServerA 上的链接服务器运行引用 ServerB 上相同对象的查询时,这是唯一一次他们得到上述错误,目前。


相关信息

这是我们目前看到的SPN和日志(抱歉所有混淆):

ServerB 成功的 SPN 注册 SQL 日志:

ServerA SQL 日志

ServerB 成功的 SPN 注册 SQL 日志:

ServerB SQL 日志

  • 请注意,两台服务器都为自己的端口 1433 和未指定端口成功注册了 SPN。

ServerA 注册的 SPN:

ServerA 注册的 SPN

  • 我不确定第二个“CN=”行(倒数第二行)是什么,但它的字面意思是“CN=ServerASvc”,但这不是 SQL 服务帐户的名称。SQL 服务帐户是“SQLServiceAccount1”。
  • 我也不确定为什么最后一行只有服务器名称“ServerA”的 SPN(我们的 DC 中确实有一个 Host/CName),但对于前面的一行来说似乎是多余的。 …

sql-server linked-server errors sql-server-2016 logon

9
推荐指数
2
解决办法
657
查看次数

服务器请求客户端未知的身份验证方法 [mysql_old_password]

Warning: PDO::__construct(): The server requested authentication method unknown to the client [mysql_old_password]
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
Run Code Online (Sandbox Code Playgroud)

尝试使用PHP本地服务器上的脚本连接到 Hostgator 上的 MySQL 数据库服务器时出现上述错误。我知道这是一个密码散列问题,通常在 MySQL 4.1 之前和 MySQL 4.1+ 之间。

我已经按照我在此处找到的说明更改了我的本地服务器以使用 old_password 。

改成16位hash后,还是连接不上,报错信息还是一样。更重要的是,我无法再登录到phpmyadmin. 我XAMPP在windows上用。请就如何解决这些问题提出任何建议?

mysql phpmyadmin php remote errors

8
推荐指数
2
解决办法
4万
查看次数

MySQL 错误:无法写入二进制日志

我有一个系统(从另一家开发公司继承),但我还不知道它的所有功能。构造:
- Web 客户端/应用程序(symfony 1.4)
- DB - MySQL。

项目部署在2台服务器上:
1-st:nginx服务器+PHP+DB Master;
2-st:DB 从站。

当数据在 DB Master 上被 web-client 修改时,DB Slave 运行良好,数据有正常的复制过程。当 MySQL 管理客户端修改数据时,我有一个通知:

无法执行语句:无法写入二进制日志,因为 BINLOG_FORMAT = STATEMENT 并且至少一个表使用仅限于基于行的日志记录的存储引擎。当事务隔离级别为 READ COMMITTED 或 READ UNCOMMITTED 时,InnoDB 仅限于行日志记录

然后,DB Slave 崩溃并且复制过程中断(错误插入...重复条目...)。

类似的通知发生(在这种情况下 - 错误)具有相同的文本,当我尝试使用 java 应用程序/模块(它在事务内运行)插入数据时,异常后,事务回滚并且不会发生任何修改。

如何解决这个问题并使系统正常工作并使DB Master和DB Slaves上的修改数据在正常模式下工作成为可能?

mysql logs errors

8
推荐指数
1
解决办法
3万
查看次数

如何在没有存储过程的情况下有条件地在 MySQL 中引发错误

我需要有条件地引发错误,但我只能使用简单的语句,而不能使用存储过程。

我想做这样的事情:

select case when foo = "bar" then 1 else SIGNAL SQLSTATE 'ERROR' end;
Run Code Online (Sandbox Code Playgroud)

不幸的是,SIGNAL 仅可用于触发器和过程,我必须在现有应用程序中使用它,该应用程序只允许我输入语句,但不允许我输入过程。(我只有一条长线,无法设置分隔符等)

有没有其他方法可以有条件地导致运行时错误?

mysql condition errors raiserror

8
推荐指数
1
解决办法
4607
查看次数

在 SQL Server 中使用 select 来使用标准创建表时,收到“In Correct syntax around '('”错误消息

当我通过 Microsoft SQL Server Management Studio 使用 SQL Server 运行以下查询时,为什么会在本文的标题中出现错误?

-- create the dash_airports table
CREATE TABLE dash_airports 
    AS ( SELECT [Loc_Id], [ARP_Latitude], [ARP_Longitude], [Facility_Type], [Wind_Indicator] 
    FROM airportandrunway.dbo.Airports
    WHERE  [Loc_Id] IN ('09J','14A','18A','1V6','22S','2I0','YKM','YKN') );

Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '('.
Run Code Online (Sandbox Code Playgroud)

我按照本指南文章中解决方案 2 的说明进行操作,但它显然不起作用。因此,作为健全性检查,我在 MySQL Workbench 中运行了它,它确实在那里工作了!是什么赋予了?

证明它在 Workbench 中有效: 在此输入图像描述

sql-server t-sql errors

8
推荐指数
2
解决办法
4690
查看次数

SQL Server记录“blob数据”,可使用journalctl查看

当我跑步时它journalctl -u mssql-server.serviceB blob data

Sep 06 17:34:44 x230 systemd[1]: Stopping Microsoft SQL Server Database Engine...
Sep 06 17:34:44 x230 sqlservr[22239]: [200B blob data]
Sep 06 17:34:44 x230 sqlservr[22239]: [190B blob data]
Sep 06 17:34:51 x230 sqlservr[22239]: [73B blob data]
Sep 06 17:34:51 x230 sqlservr[22239]: [146B blob data]
Sep 06 17:39:51 x230 sqlservr[22239]: [73B blob data]
Sep 06 17:39:51 x230 sqlservr[22239]: [146B blob data]
Run Code Online (Sandbox Code Playgroud)

我也没有运行 DDL 命令,也没有插入或更新 blob 数据。但有可能是mssql-cli在后台执行类似操作。

sql-server linux logs errors

7
推荐指数
1
解决办法
2073
查看次数

Microsoft SQL Server 2019 开发版突然抛出内部连接致命错误

我的计算机上安装了 Microsoft SQL Server 2019 Developer 版本,用于使用 .NET 进行本地开发工作。两个月前,当我最后一次从事使用它的项目时,一切都运行良好。我终于回到了项目,但现在我的程序失败并出现以下错误:“内部连接致命错误。错误状态 15,令牌:23 (System.Data)”。该程序使用 SQL Server 身份验证帐户。

当我尝试连接到数据库实例时,我在 SQL Server Management Studio (SSMS) 中遇到相同的错误。这是一个已保存的会话,过去localhost\MSSQL2019可以正常工作。无论我使用 Windows 帐户还是 SQL 帐户,我都会收到错误。

我将 SSMS 更新到最新版本(18.12.1),但仍然出现错误。我还通过配置管理器确认了 IP 设置。

无奈之下,我卸载了 MSSQL 2019 Dev 版本,重新启动并尝试使用从 Microsoft 新鲜下载的 DVD ISO 重新安装它。安装接近尾声,但失败并出现相同的错误。

我能够成功安装 MSSQL 2016 Dev 版本并通过 SSMS 连接。但是,当我尝试将其升级到2019时,升级完成,但SSMS再次出现错误。

我使用的是 Windows 10 Pro 21H2,64 位,配备 Intel i7 处理器。

我没有通过 Google 或 Bing 找到解决方案。任何帮助表示赞赏。

为了完整起见,这里是完整的例外。

===================================

Testing the registered server failed. Verify the server name, 
login credentials, and database, and then …
Run Code Online (Sandbox Code Playgroud)

ssms errors sql-server-2019

7
推荐指数
1
解决办法
3343
查看次数

这段 TSQL 是如何工作的?

为什么下面的批次不能按预期工作?

DROP TABLE IF EXISTS #test1;

IF 1 = 1
    SELECT *
    INTO #test1
    FROM sys.databases
    WHERE database_id <= 5;

ELSE
    SELECT *
    INTO #test1
    FROM sys.databases;


SELECT *
FROM #test1;
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到:

消息 2714,级别 16,状态 1,第 12 行 数据库中已有一个名为“#test1”的对象。

我必须像这样更改代码:

DROP TABLE IF EXISTS ##test1;

IF 1 = 1
    EXEC ('
    SELECT *
    INTO ##test1
    FROM sys.databases
    WHERE database_id <= 5;
    '    );

ELSE
    EXEC ('
    SELECT *
    INTO ##test1
    FROM sys.databases;');


SELECT *
FROM ##test1;
Run Code Online (Sandbox Code Playgroud)

这按预期工作。上述错误似乎是一个解析错误,我不确定。谁能帮忙解释一下这里发生了什么?

sql-server t-sql errors

7
推荐指数
1
解决办法
743
查看次数