1. 程式人生 > >一次DB2資料庫連線失敗(SQLSTATE=08001)的解決方法

一次DB2資料庫連線失敗(SQLSTATE=08001)的解決方法

有一次,在使用DbVisualizer工具連線自己linux虛擬機器上的DB2資料庫時,報如下錯誤:

複製程式碼
Product:  DbVisualizer Pro 9.1
Build:  #2050 (2013/09/08 11:03)
Java VM:  Java HotSpot(TM) 64-Bit Server VM
Java Version:  1.6.0_43
Java Vendor:  Sun Microsystems Inc.
OS Name:  Windows 7
OS Arch:  amd64
OS Version:  6.1

An error occurred while establishing the connection:

Long Message:
[jcc][t4][
2043][11550][4.15.82] 異常 java.net.ConnectException:開啟埠 50,000 上伺服器 /192.168.17.88 的套接字時出錯,訊息為:Connection timed out: connect。 ERRORCODE=-4499, SQLSTATE=08001 Details:    Type: com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException    Error Code: -4499    SQL State: 08001
複製程式碼

在百度上搜索"DB2 SQLSTATE=08001",找到如下資料:

複製程式碼
這種問題一般的原因:
1.DB2COMM=TCPIP 2.資料庫故障 3.埠號被禁用 解決方案: 1.看看埠號有沒有配置正確,看一下配置引數svcename跟services檔案中配置的db2埠號是否一致,windows一般用50000,unix/linux一般用60000。 2.連接出錯首先看看伺服器ip 和埠寫對沒有。 ip如果沒錯就要看看伺服器的db2服務埠對不對。另外對於伺服器下面這些也要注意。 檢查伺服器的配置情況如下: 驗證存在的DB2資料庫 db2 list db directory db2 list db directory show detail 驗證例項使用的通訊協議,檢視DB2COMM變數 db2set
-all 檢視資料庫管理器的配置,檢視SVCENAME(特指tcpip協議) db2 get dbm cfg 檢視/etc/services中,有無與上面對應SVCENAME的埠,例如: db2cDB2 50000/tcp 要確認伺服器是否在監聽,可以用netstat -an 來檢視埠是否處於LISTEN狀態。
複製程式碼

檢視我linux虛擬機器上的db2資料庫埠設定:

[[email protected] ~]# cat /etc/services | grep db2c_db2inst1
db2c_db2inst1 50000/tcp

埠設定沒有問題,在看防火牆設定:

複製程式碼
[[email protected] ~]# service iptables status
±í¸ñ£ºfilter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80 
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:81 
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8080 
8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8081 
9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8001 
10   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8002 
11   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

[[email protected] ~]# 
複製程式碼

原來防火牆沒有開啟50000埠。編輯該檔案,在裡面新增一條記錄:

11   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:50000

新增完之後,重啟iptables設定(一定要重啟,否則不生效),並再次檢視防火牆埠設定資訊(注意紅色標記部分):

複製程式碼
[[email protected] ~]# service iptables restart
清除防火牆規則:                                           [確定]
把 chains 設定為 ACCEPT 策略: filter                      [確定]
正在解除安裝 Iiptables 模組                                    [確定]
應用 iptables 防火牆規則                                   [確定]
[[email protected] ~]# service iptables status
±í¸ñ£ºfilter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80 
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:81 
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8080 
8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8081 
9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8001 
10   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8002 
11   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:50000 
12   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

[[email protected] ~]# 
複製程式碼

再次使用DbVisualizer工具連線資料庫,成功!

相關推薦

DB2資料庫連線失敗SQLSTATE=08001解決方法

有一次,在使用DbVisualizer工具連線自己linux虛擬機器上的DB2資料庫時,報如下錯誤:Product: DbVisualizer Pro 9.1 Build: #2050 (2013/09/08 11:03) Java VM: Java HotSpot(T

SQLServer2008R2使用者登入失敗錯誤18456解決方法

  SQL Server 2008 R2使用者'sa'登入失敗(錯誤18456),如下圖:     解決辦法:   1、首先用身份登入,有如下介面:   2、右鍵例項-- 屬性,選擇【安全性】,選擇身份驗證方式:   3、右鍵例項-- 【重新啟動】

SQL2008.sa'登入失敗錯誤18456解決方法

標題: 連線到伺服器------------------------------無法連線到 .\SQLEXPRESS。------------------------------其他資訊:使用者 'sa' 登入失敗。 (Microsoft SQL Server,錯誤: 184

[資料庫]-----記mysql分庫的操作冷熱分離

前提: 1.原有庫是mysql資料庫,已經根據使用者pin分片 2.每片是一主兩從 3.主表已經分過表了 4.資料庫所在伺服器為4C8G 5.庫中資料量已經超過千萬,而且以每天3萬多的資料持續增長,將來每天或許會更多 6.庫內資料為訂單資料,每時每刻

mysql資料庫被勒索

 背景在上一篇文章裡面已經提過了。【參考:記一次mysql資料庫被勒索(上)】 現在面臨的問題是nextcloud沒有mysql資料庫,用不起來了。 因為檔案沒丟,一種方法是啟動新的mysql資料庫,把檔案重新提交一次。 為了程式設計師的面子,沒有選擇這麼沒技術含量的方法。我想通過恢復mysql資料

軟工實踐 - 第十作業 Alpha 沖刺 3/10

and 後臺 單元 bubuko 團隊 工具 .html 功能實現 頁面 隊名:起床一起肝活隊 組長博客:https://www.cnblogs.com/dawnduck/p/9972061.html 作業博客:班級博客本次作業的鏈接 組員情況 組員1(隊長):白晨曦 過去

雲serverlinux又掛載指定資料夾非擴充

新買的香港雲server。系統僅僅能在商家的控制檯上安裝。 系統和硬碟分開的,根資料夾空間僅僅有10G。須要又一次設定相關資料夾的大小。如:/usr、/var、/home等。 下面是自己的解決方法小計。 一、初始的分割槽情況(外加一個300G未分割槽的硬

spyder打不開閃退之後,心累的恢復歷程

問題描述:anaconda prompt能正常開啟,spyder開啟是蛛網介面能出來,但蛛網介面之後就是白屏狀態,兩三秒之後就閃退了,anaconda 上顯示的錯誤是7692:29420:1108/161925.088:ERROR:broker_win.cc(59)。 著急

26歲了,想再衝動,轉行學程式設計WEB開發

26的歲數確實已經不小了,按說應該踏踏實實的做好自己的相關工作了。但是真的不喜歡現在的工作,確切的說是現在的工作性質,在這樣的單位裡工作感覺與世隔絕都差不多了。真心的不想這樣下去了,聽到同學轉行學了WEB開發聽他說還不錯,希望學過的或者在學的能給點建意或者分享一

delphi如何用儲存資料庫連線引數INI篇

在設計資料庫應用程式的時候,經常需要將一些資訊從程式中獨立出來,以保證程式的可移植性。其中最重要的資訊就是資料庫的連線引數。在Delphi中,獲得正確的資料庫連線引數的方法十分簡單,你只需要建立一個數據模組,在其中新增一個ADO Connection,雙擊之,然後在彈出的視窗

DB2資料庫查詢過程Query Processing----複合索引的匹配索引掃描Matching Index Scans with Composite Indexs

複合索引(Composite Index) 索引列(搜尋碼)由多個表列共同組成的索引稱為複合索引,相對的,索引列僅是單個表列的索引稱為單列索引。 例如語句:CREATE INDEX PHONEBOOK_IDX ONPHONEBOOK ( LASTNAME, FIRSTNM

配置jdbc資料庫連線檔案db.properties

/**  *propertie檔案編寫(鍵值對)  *  */ driver=com.mysql.jdbc.Driver URL=jdbc\:mysql\://localhost\:3306/menu user=root password=123456 /**

DB2資料庫查詢過程Query Processing----簡單索引訪問Simple Indexed Access

索引對於資料庫的效能有著舉足輕重的作用。上一篇文章已經介紹了沒有索引的情況下表掃描訪問相關知識,本文討論有索引的情況下資料庫系統如何使用索引進行資料訪問,內容會比較複雜,強烈建議參看《深入理解DB2索引(Index)》,理解DB2索引的結構,特別是B+樹後再閱讀本文,否則看

記錄餘額遷移的坑測試角度

一、這是一個遷移流程圖;現在把action做個簡單的記錄:備註:本次遷移核心是遷移流水,通過流水的收入-支出-餘額=0,在平臺使用者最少的時候進行遷移(凌晨2點進行);找出收入和支出有差異的--仔細對賬查賬;然後運維配合,流水扎帳,記錄最大的流水id;繼續賬單平賬,然後進行快照流水回放遷移,遷移完成後,

水平分表實踐sharding-jdbc

摘要 本文示例是按月水平分表。存在一下兩點不足: 分表主鍵沒有設計好,本文用的是自增長id,沒有把時間組合到主鍵中,導致少了一個

python分散式web開發利用docker

作者:落陽 日期:2020-12-23 在一次專案開發中,決定使用docker+nginx+flask+mysql的技術棧來開發,用此係列文章記錄開發的過程。 系列文章,當前為第一篇,記錄一次python分散式web開發過程。 ## 一、docker的安裝 --- 作為學生,想找到合適數量的計算機

關於 C#呼叫C庫Dll,有回撥函式時,只執行回撥函式就直接掛掉 的解決方法

錯誤         直接當機,如下圖:           錯誤原因        回撥函式宣告原因,跟堆疊有關係  

使用innobackupex重新搭建主從複製報錯解決方法及注意事項

【環境介紹】   系統環境:CentOS release 6.4 (Final) + Server version: 5.7.18-log MySQL Community Server (GPL) + innobackupex version 2.4.12 Linux (x86_64)

Microsoft SQL Server 2005 使用者'sa'登入失敗錯誤18456解決方案圖

使用者'sa'登入失敗(錯誤18456)解決方案圖解 當我們在使用sql server 的時候可能會遇見這樣錯誤提示“無法連線到.,使用者'sa'登入失敗(錯誤18456)”, 如圖: 具體的解決方案: 首先使用管理員身份開啟SQL server ,並且以

DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016錯誤解決方法

經多次嘗試 總結方法:     1:reorg table 表名 (表名後面不要加分號,否則會報沒有這張表),還有就是在dbvisualizer這種工具客戶端中執行會報-104錯誤,用db2的命令列處理器就好; 假如不好使,則嘗試下面方法。     2:先前嘗試裝入(LOAD)此表失敗。表的狀態應該是l