連接字符串:
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();
// 執行查詢...
}
官方錯誤代碼對照表,28000 確為授權規範無效。