項目中使用的數據庫是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 來鏈接 到這個數據庫。