在 Linux 平臺下安裝 DB2 Express C (2)

項目中使用的數據庫是DB2,  比較悲催的是它的鏈接速度, 有時候開發的時候鏈接太慢了。可是如今 IBM 推出了免費的 DB2 Express C 版本,咱們在開發的過程當中是能夠自由使用的。  linux

本文記錄了我在 一臺 64位 Linux 服務器上的安裝 DB2 Express C 的過程。 c++

1,  下載  首先先是獲得 IBM 網站下載這個軟件。  我所使用的是 DB2 Express 10.1 版本。由於咱們的平臺是 Linux x86_64  64 位, 因此就下了這個 db2_v101_linuxx64_expc.tar.gz。 
數據庫


2, 安裝DB2服務器


安裝必要軟件tcp

1.因爲DB2的安裝包是基於RPM的,因此須要安裝一個rpm兼容的安裝器。IBM推薦使用alien。安裝命令爲:(這部很重要:嘗試了n遍iushi這個 緣由)網站

sudo apt-get install alienurl

2.因爲DB2的安裝過程須要依賴gcc,因此還須要安裝libstdc++5和libaio-dev。安裝命令爲:spa

sudo apt-get install libstdc++5hibernate

sudo apt-get install libaio-devorm


拷貝 這個文件到  argudev 機器得  /tmp 目錄

# cd /tmp

# tar zxvf  db2_v101_linuxx64_expc.tar.gz  

#cd  expc

# ./db2_install

安裝時若提示找不到libaio.so  及libstdc++.so,則先下載安裝相應的軟件包。

正常的話 等待 幾分鐘 你就能夠看到 

Successfully 的信息了

3, 配置DB2

#建立用戶組及用戶

groupadd -g 2000 db2iadm1

useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1

passwd db2inst1
>db2inst1

 

這個時候咱們建立了  db2iadm1  用戶組 以及 一個 用戶名和密碼都是db2inst1 的用戶。

 

#建立實例
/opt/ibm/db2/V10.1/instance/db2icrt -a server -u  db2inst1 db2inst1

DBI1070I Program db2icrt completed successfully.

 

#產品許可證
/opt/ibm/db2/V10.1/adm/db2licm -a  expc/db2/license/db2expc_uw.lic


LIC1402I License added successfully.

LIC1426I This product is now licensed for use as outlined in your License Agree
ment. USE OF THE PRODUCT CONSTITUTES ACCEPTANCE OF THE TERMS OF THE IBM LICENSE
AGREEMENT, LOCATED IN THE FOLLOWING DIRECTORY: "/opt/ibm/db2/V10.1/license/en_US
.iso88591"


#容許SMS的多頁分配
/opt/ibm/db2/V10.1/cfg/db2ln

 

#添加DB2端口

在文件 /etc/services 加入下面一行
db2inst  50000/tcp

 

#DB2 配置
su - db2inst1

下面都是以 用戶db2inst1 來運行了


$ db2set DB2_EXTENDED_OPTIMIZATION=ON
$ db2set DB2_DISABLE_FLUSH_LOG=ON
$ db2set AUTOSTART=YES
$ db2set DB2_STRIPED_CONTAINERS=ON
$ db2set DB2_HASH_JOIN=Y
$ db2set DB2COMM=tcpip
$ db2set DB2_PARALLEL_IO=*
$ db2set DB2CODEPAGE=819

#Update dbm cfg
#TCP/IP Service name
$ db2 update dbm cfg using SVCENAME db2inst
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.

 


$ db2 update dbm cfg using INDEXREC ACCESS
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.

 

#運行DB2
必須先運行DB2才能建立數據庫,不然報以下錯誤
SQL1032N No start database manager command was issued. SQLSTATE=57019
$ db2start
SQL1063N DB2START processing was successful.

#建立庫

$ db2 "CREATE DATABASE DCDDB1 ALIAS DCDDB1 USING CODESET ISO8859-1 TERRITORY US"
DB20000I The CREATE DATABASE command completed successfully.

$ db2 connect to DCDDB1
   Database Connection Information

Database server        = DB2/LINUX 10.1

SQL authorization ID   = DB2INST1
Local database alias   = DCDDB1

$ db2 "CREATE table mytable ( col1 INTEGER NOT NULL, col2 VARCHAR(40), col3 DECIMAL(9,2))"
DB20000I The SQL command completed successfully.

$ db2 "SELECT * FROM mytable FETCH FIRST 10 ROWS ONLY"

這樣就成功了,  若是咱們 telnet  localhost   50000 發現 端口沒有打開

咱們須要經過   $db2stop  force 

來 停掉 db2 數據庫 而後 db2start 從新開啓db2。 本人安裝的時候沒有重啓 instance , 困惑本機能夠用db2 命令能夠select, 可是遠程就是連不上。 

 

4,  客戶端 鏈接 數據庫

DataSource.driverClassName=com.ibm.db2.jcc.DB2Driver

DataSource.url=jdbc:db2://dbServer:50000/DCDDB1

DataSource.username=db2inst1

DataSource.password=db2inst1

DataSource.dialect=org.hibernate.dialect.DB2390Dialect


注意  數據庫 服務器 , database 名字  , 以及用戶名 


固然你也能夠用  DBVisualizer 來鏈接 到這個數據庫。 

相關文章
相關標籤/搜索