下載地址:https://pan.baidu.com/s/1GtF03x1FMF3IsGdSiBJu-g 提取碼:8vfj
失效了發郵件:wells974@163.com
一、db2prereqcheck預檢查
首先進入到壓縮包所在的目錄,執行tar
命令對.tar.gz壓縮文件進行解壓
# 解壓到當前目錄
tar -zxvf v10.5_linuxx64_expc.tar.gz
# 后面加 -C 目錄 可以指定需要解壓到的目錄。
# 如:tar -zxvf v10.5_linuxx64_expc.tar.gz -C /home/wells/soft
第一次解壓的時候失敗了,刪了重新從網盤下了一次再解壓,解壓完成!
解壓完成后,進入當前目錄下剛剛解壓出來的expc
文件夾,通過ll
命令可以看到,有一個叫db2prereqcheck
的文件,這個文件是用於db2安裝預檢查的,命令如下:
# 進入解壓出來的文件夾
cd expc/
# 查看當前所在目錄下的所有文件信息
ll
# 執行預檢查程序
./db2prereqcheck
預檢查程序顯示未滿足的條件,這里出現了4個問題。
-
/lib/libpam.so*
錯誤信息
英文: DBT3514W The db2prereqcheck utility failed to find the following 32-bit library file: "/lib/libpam.so*" 中文: DBT3514W db2prereqcheck 實用程序未能找到以下 32 位庫文件:"/lib/libpam.so*"
解決方案:
yum install pam-devel.i686 yum install pam.i686
這里我只執行成功了
yum install pam-devel.i686
,執行yum install pam.i686
時提示沒有可以安裝的依賴包。
-
sg3_utils / sg_persist
錯誤信息
英文: DBT3507E The db2prereqcheck utility failed to find the following package or file: "sg_persist". DBT3507E The db2prereqcheck utility failed to find the following package or file: "sg3_utils". 中文: DBT3507E db2prereqcheck 實用程序未能找到以下程序包或文件:"sg_persist" DBT3507E db2prereqcheck 實用程序未能找到以下程序包或文件:"sg3_utils"
解決方案:
yum install sg3_utils-*
運行一行解決兩個!nice!
sg_persist也解決了
-
關閉SELinux
這里我使用永久關閉,百度有臨時關閉的方法~
使用
vi
命令編輯/etc/selinux/config
vi /etc/selinux/config
將
SELINUX=enforcing
注釋,新增一行SELINUX=disabled
。:wq
保存退出設置完成后,記得使用
reboot
命令重啟。
重啟后再次執行預檢查程序。
# 執行預檢查程序
./db2prereqcheck
如下圖所示,剛剛出現的問題已經解決了!
二、db_install安裝
還是在剛剛的expc
文件夾,運行db2_install
進行安裝:
./db2_install
這里有詢問是否安裝到缺省目錄。我這里選擇是
,當然,也可以輸入 否 ,安裝到指定的目錄。
三、創建用戶組和用戶
創建實例前,需要先創建用戶組和用戶
# 創建兩個組
groupadd db2adm1
groupadd db2fen1
# 創建兩個用戶,並將他們分配給剛剛創建好的用戶組
# 在這里-d指定目錄,-m 表示如果用戶目錄不存在,則創建, -g指定用戶組
useradd -d /home/db2inst1 -m db2inst1 -g db2adm1
useradd -d /home/db2fenc1 -m db2fenc1 -g db2fen1
給db2inst1
和db2fenc1
兩個賬戶設置密碼,如果沒有設置密碼后面會出現問題。
tip: 密碼不能小於8位,且不能與用戶名相同
passwd db2inst1
passwd db2fenc1
現在可以創建實例啦~
首先進入我們前面的安裝路徑/opt/ibm/bd2/V10.5
下的/instance/
目錄。在這個目錄下,用ls
或ll
命令可以看到一個叫db2icrt
的命令。他是db2 instance create 的縮寫,我們用這個命令來創建一個實例。
cd /opt/ibm/bd2/V10.5/instance/
ll
# 創建一個叫db2inst1的實例
./db2icrt -u db2fenc1 db2inst1
驗證是否創建成功
# 切換用戶
su - db2inst1
# 啟動數據庫實例
db2start
# 在實例中創建數據庫
db2sampl # 創建一個DB2SAMPL樣板庫
# 或
db2 create create db wellsdb # 用db2的命令來創建數據庫,這里的wellsdb是數據庫名,可改成自己的
# 查看當前實例下所存在的數據庫
db2 list db directory
# 連接到數據庫
db2 connect to wellsdb
# 查看當前數據庫下的表空間有哪些,可以看到,我的數據庫中有3個表空間,id 分別為 0,1,2
db2 list tablespaces
執行sql語句
db2 "create table user(id int,name varchar(10))"
db2 "insert into user values(1,'wells')"
db2 "insert into user values(2,'974')"
db2 "select id,name from user"
關閉數據庫
db2 terminate
db2stop
tip:
terminate 、db2stop、db2start三個命令的意義
db2 terminate
斷開當前與數據庫的連接
終止后台對應的db2bp進程
db2start/db2stop
啟動/停止數據庫服務器
搞定,債見~