Windows

如何自動將我的客戶端連接到另一台具有動態 IP 的機器上的 ODBC 數據源?

  • October 30, 2012

在客戶那裡,我們在伺服器上有一個 postgres 數據庫,還有一些客戶端。我們通過 ODBC 驅動程序將它們連接起來,所有機器都執行 Windows(通常是 XP)。現在我們遇到了一些煩人的問題:

  • 客戶端“忘記”了 ODBC 驅動程序中的一些標誌,例如 ByteA 作為 LO。每次發生任何變化時,我們都必須重置它,並輸入密碼,有時甚至是伺服器的 IP。
  • 在執行 Windows 7 的 x64 機器上,配置這很痛苦,因為預設情況下系統設置對話框只會顯示 64 位連接。
  • 最重要的是:如果伺服器因客戶重啟或更換交換機而更改 IP,所有連接都會失去。煩人的是,這不能僅通過更正 IP 來解決,相反,我們必須檢查每個地方(甚至是 hba_conf),因為所有設置都會神奇地消失。

我們的客戶通常是非常小的公司,其中“伺服器”的意思是“另一個房間的那台 PC”,而不是“地牢中的 Oracle 大型機”,所以我們不想依賴他們不重新啟動交換機。

有沒有比依賴這些真正不穩定的設置更好的方法?這些設置是否在我可以手動編輯的文件中的某個位置,以便更輕鬆地修復它?

修復如下:

  1. 初始化時,在應用程序中解析部分連接字元串,如有必要,將標誌附加到它。
  2. 只需要一次,因為我可以解決其他問題。仍然不理想。
  3. 使用電腦的名稱,而不是 IP。數據服務可以很容易地使用它。
  1. 看看系統資料庫。WIn32 ODBC 數據系統源位於HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI. 檢查您的設置在系統“忘記”之前和之後的外觀
  2. 我不記得這些設置在 64 位 Windows 中保存在哪裡,但它們也在系統資料庫中。Win64 有 2 個 ODBC 位置:一個用於 32 位應用程序,第二個用於 64 位應用程序
  3. 他們是否將 DHCP 用於伺服器?他們不能使伺服器IP地址永久化嗎?

引用自:https://serverfault.com/questions/208703