db2安裝


https://www.cnblogs.com/JamesHao/p/12991870.html

一、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 

image-20200528234445605

image-20200528234507228

第一次解壓的時候失敗了,刪了重新從網盤下了一次再解壓,解壓完成!

解壓完成后,進入當前目錄下剛剛解壓出來的expc文件夾,通過ll命令可以看到,有一個叫db2prereqcheck的文件,這個文件是用於db2安裝預檢查的,命令如下:

# 進入解壓出來的文件夾 cd expc/ # 查看當前所在目錄下的所有文件信息 ll # 執行預檢查程序 ./db2prereqcheck 

image-20200528234934522

image-20200528235917162

預檢查程序顯示未滿足的條件,這里出現了4個問題。

  1. /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時提示沒有可以安裝的依賴包。

image-20200529000805420

  1. 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也解決了

image-20200529000940950

 

openibd 缺少,可以不用安裝。主要用於圖形化界面的安裝方式(./db2_install),可以使用./db2_install 命令行版安裝跳過該驅動

  1. 關閉SELinux

    這里我使用永久關閉,百度有臨時關閉的方法~

    使用vi命令編輯/etc/selinux/config

    vi /etc/selinux/config
    

    image-20200529001512208

    SELINUX=enforcing注釋,新增一行SELINUX=disabled:wq保存退出

    image-20200529001611397

    設置完成后,記得使用reboot命令重啟。

重啟后再次執行預檢查程序。

# 執行預檢查程序 ./db2prereqcheck 

如下圖所示,剛剛出現的問題已經解決了!

image-20200529001908459

二、db_install安裝

還是在剛剛的expc文件夾,運行db2_install進行安裝:

./db2_install

這里有詢問是否安裝到缺省目錄。我這里選擇,當然,也可以輸入 否 ,安裝到指定的目錄。

image-20200529002028964

image-20200529002304763

三、創建用戶組和用戶

創建實例前,需要先創建用戶組和用戶

# 創建兩個組 groupadd db2adml groupadd db2fenl # 創建兩個用戶,並將他們分配給剛剛創建好的用戶組 # 在這里-d指定目錄,-m 表示如果用戶目錄不存在,則創建, -g指定用戶組 useradd -d /home/db2instl -m db2instl -g db2adml useradd -d /home/db2fenc1 -m db2fencl -g db2fenl 

image-20200529003006221

db2instldb2fencl兩個賬戶設置密碼,如果沒有設置密碼后面會出現問題。

tip: 密碼不能小於8位,且不能與用戶名相同

passwd db2instl
passwd db2fencl

image-20200529003134784

image-20200529003201052

現在可以創建實例啦~

首先進入我們前面的安裝路徑/opt/ibm/bd2/V10.5下的/instance/目錄。在這個目錄下,用lsll命令可以看到一個叫db2icrt的命令。他是db2 instance create 的縮寫,我們用這個命令來創建一個實例。

cd /opt/ibm/db2/V10.5/instance/
ll
# 創建一個叫db2instl的實例 ./db2icrt -u db2fencl db2instl 

image-20200529003447677

image-20200529010040840

驗證是否創建成功

# 切換用戶 su - db2instl # 啟動數據庫實例 db2start
# 查看當前實例下所存在的數據庫 db2 list db directory 

image-20200529010522444

# 連接到數據庫 db2 connect to wellsdb 

image-20200529010611931

# 查看當前數據庫下的表空間有哪些,可以看到,我的數據庫中有3個表空間,id 分別為 0,1,2 db2 list tablespaces 

image-20200529010803613

執行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"

image-20200530120103686

image-20200530120426020

image-20200530120515158

關閉數據庫

db2 terminate
db2stop

image-20200530120813456

tip:

terminate 、db2stop、db2start三個命令的意義

db2 terminate

  1. 斷開當前與數據庫的連接

  2. 終止后台對應的db2bp進程

db2start/db2stop

​ 啟動/停止數據庫服務器

 

 客戶端連接配置:

db2set -all

如果沒有DB2COMM=TCPIP

則需要添加執行

db2set DB2COMM=TCPIP

 

然后確認執行 db2 get dbm cfg | grep "SVCENAME"

 

 

如果是上圖結果,則需要執行

db2 update database manager configuration using svcename db2c_db2instl

切換root用戶

vi /etc/services

增加:

db2c_db2instl 50000/tcp

db2c_db2instl 50000/udp

 

切換db2instl 用戶

重啟db2服務

db2stop force

db2start


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM