在docker中配置Oracle11g
docker鏡像拉取及相關配置
1.在docker打開的情況下,使用下方命令拉去鏡像,大概需要下載3個G的image檔案
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
2.啟動Oracle鏡像并為鏡像新建容器,注意此處的oracle11g即為容器名,可以自主設定
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
由于在windows10專業版系統的docker是使用wsl作為容器內核,所以存在著一系列的記憶體,CPU以及交換空間的一些限制,我們可以在一個
.wslconfig檔案中配置如上資訊,若是在運行上陳述句的時候發現容器并沒有正常運行,而是以一個139的錯誤代碼退出,則說明我們的wsl的一部分限制導致了此容器不能正常運行,此時,我們可以在C:\Users\username路徑下新建一個.wslconfig檔案,并寫入如下內容(若是檔案已存在則直接添加即可)
[wsl2]
kernelCommandLine = vsyscall=emulate
3.打開容器命令如下(針對上一步沒有正常打開容器)
docker start oracle11g
4.進入已打開容器命令如下
docker exec -it oracle11g bash
5.進行環境變數的配置
使用管理員賬戶密碼為helowin
su root
編輯profile環境變數檔案
vi /etc/profile
點擊i進入檔案編輯模式,在檔案末尾添加如下資訊,按ESC鍵退出編輯模式,鍵入:wq保存檔案并退出檔案
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
鍵入exit命令退出管理員賬號,回到oracle用戶
exit
使用如下命令使剛設定的環境變數生效
source /etc/profile
由于Oracle是基于實體和用戶的,所以我們可以新建一個用戶來完成我們當前需要完成的作業
sqlplus /nolog #打開sqlplus但是不進行連接操作
conn /as sysdba; #無用戶、密碼以最高權限登錄
alter user system identified by oracle; #更改system用戶密碼為oracle
conn system/oracle; #連接system資料庫
create user username identified by username; #創建一個新用戶,用戶名可自由設定
grant all privileges to username;#為新用戶賦權
shutdown immediate; #關閉當前資料庫
exit; #退出sqlplus
6.設定oracle支持外部連接訪問
登錄管理員用戶,密碼為helowin
su root
使用如下命令獲得當前主機名
hostname
獲得監聽器listener.ora和tnsnames.ora檔案的目錄
find / | grep /network/admin
使用獲得的路徑編輯檔案,將檔案中的localhost變數用我們查詢到的hostname名替代
vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora
此時,我們需要做的配置已經全部做好了,之后只需要保持容器為運行的狀態即可,
使用Nacicat連接已經配置好的資料庫
首先,我們需要到Instant Client for Microsoft Windows (x64) 64-bit (oracle.com)即Oracle的官網下載資料庫連接要用到的證書檔案,(注意,我們需要下載與自己Oracle資料庫版本對應的證書檔案)
查詢資料庫的具體版本,需要在sqlplus中執行如下命令
select * from v$version
為Navicat配置OCI環境,Navicat選擇工具--->選項--->環境--->OCI環境,選中我們解壓后的證書檔案夾中的oci.dll檔案即可,新建連接的時候的配置如下:

使用python連接Oracle資料庫
建議使用anoconda創建一個新的虛擬環境來進行新的系統任務,
首先,使用如下命令下載需要進行連接oracle資料庫的包cx_Oracle
pip install cx_Oracle
其后,我們需要創建一個.py檔案,并在其中輸入如下代碼:
import cx_Oracle
conn = cx_Oracle.connect('賬號','密碼','資料IP:埠/資料庫實體名稱')
cusor = conn.cursor()
print('連接資料庫成功!')
print(cx_Oracle.__version__)
直接運行該代碼是行不通的,我們需要將必要的驅動檔案放到與該檔案同級目錄下,驅動檔案在我們之前下載的證書檔案壓縮包中已經有了,我們需要移動的檔案有oci.dll,ocijdbc11.dll,ociw32.dll,orannzsbb11.dll,oraocci11.dll,oraociei11.dll,orasql11.dll
配置好檔案之后,我們運行代碼得到如下輸出即代表資料庫連接完成
連接資料庫成功!
8.3.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/548992.html
標籤:其他
上一篇:讀SQL進階教程筆記06_外連接
下一篇:讀SQL進階教程筆記06_外連接
