首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 連接 PostgreSQL 亂碼與認證失敗(28000)排查

     編輯:程式設計綜合問答

錯誤現象

連接字符串:
Server=192.168.0.107;Port=5432;User Id=postgres;Password=123;Database=TestDB;
報錯:28000: INVALID AUTHORIZATION SPECIFICATION,且中文顯示亂碼。

原因與解決

問題原因解決
認證失敗 28000密碼錯誤、用戶無權限、pg_hba.conf 未配置信任1. 確認密碼正確
2. 檢查 pg_hba.conf 是否允許該 IP md5 登錄
3. 嘗試 pgAdmin 連接驗證
中文亂碼連接字符串缺少編碼參數、數據庫編碼不一致添加 Encoding=UTF8; 或 Client Encoding=UTF8; 到連接字符串

完整連接字符串示例


Server=192.168.0.107;Port=5432;User Id=postgres;Password=123;Database=TestDB;Encoding=UTF8;Pooling=true;

代碼修正


string connStr = "Server=192.168.0.107;Port=5432;User Id=postgres;Password=123;Database=TestDB;Encoding=UTF8;";
using (var conn = new NpgsqlConnection(connStr))
{
    conn.Open();
    // 執行查詢...
}

進階:查看 PostgreSQL 錯誤代碼表

官方錯誤代碼對照表,28000 確為授權規範無效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved