0x-4-Oracle 23 ai-sqlcl 25.1.1 独立安装-配置和优化

一、独立安装sqlcl

1. ​安装 Java 环境​

SQLcl 需要 Java 1.8.0_220 或更高版本,

Oracle Linux9.6 上已经默认安装Oracle 23ai后Java 是11 lts版本

如果java jdk安装错误将遇上SQLcl困扰n多人的bug

sql /nolog
错误:找不到或加载主类 oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli
原因:java.lang.ClassNotFoundException:oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli

bash复制# 检查当前 Java 版本
java -version

# 若未安装或版本过低,安装 OpenJDK 17(推荐)
sudo dnf install java-17-openjdk-devel

# 设置 JAVA_HOME(根据实际路径调整)
echo "export JAVA_HOME=/usr/lib/jvm/java-17-openjdk" >> ~/.bashrc
source ~/.bashrc

[oracle@OL96 ~]$ which java
/usr/bin/java
[oracle@OL96 ~]$ which sqlcl
/usr/bin/which: no sqlcl in (/opt/oracle/product/23ai/dbhomeFree/bin:/home/oracle/.local/bin:/home/oracle/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/lib/jvm/java-11-openjdk/bin:/opt/sqlcl/bin:/opt/sqlcl/bin:/opt/sqlcl/bin:/usr/lib/jvm/java-11-openjdk/bin)
2. ​下载并安装 SQLcl--默认安装了一个版本

可以独立下载

SQLcl Downloads

也可以直接wget​ 

# 下载最新版 SQLcl(当前最新为 25.1.1)--20250607
wget https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip
unzip sqlcl-latest.zip -d /opt/
[root@OL96 home]# wget https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip
--2025-06-08 00:10:08--  https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip
Resolving download.oracle.com (download.oracle.com)... 23.35.208.76
Connecting to download.oracle.com (download.oracle.com)|23.35.208.76|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 87557295 (84M) [application/zip]
Saving to: ‘sqlcl-latest.zip’

sqlcl-latest.zip                  100%[=============================================================>]  83.50M  2.26MB/s    in 57s

2025-06-08 00:11:07 (1.47 MB/s) - ‘sqlcl-latest.zip’ saved [87557295/87557295]

# 设置环境变量
echo 'export PATH=$PATH:/opt/oracle/sqlcl/bin' >> ~/.bashrc
source ~/.bashrc

2. 查找默认的sqlcl路径和rpm安装的sqlcl 

---可以使用默认的sql也可以用dnf install 下载最新的sqlcl,需要提前添加oracle linux repo
sudo dnf config-manager --add-repo https://yum.oracle.com/repo/OracleLinux/OL9/oracle/software/x86_64
sudo dnf install sqlcl
--这个sqlcl安装后,会在/opt/oracle/sqlcl路径下。
而原生的随着oracle 23 ai free安装的sql在/opt/oracle/product/23ai/dbhomeFree/sqlcl/bin

--需要修改oracle下的.bash_profile文件,才能正常使用sqlcl
--关键设置export PATH=$PATH:/opt/oracle/product/23ai/dbhomeFree/sqlcl/bin
[oracle@OL96 ~]$ vi .bash_profile
--
[oracle@OL96 ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree
export ORACLE_SID=FREE
export PATH=$ORACLE_HOME/bin:$PATH
export PATH=$PATH:/opt/oracle/product/23ai/dbhomeFree/sqlcl/bin
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$PATH:$JAVA_HOME/bin
[oracle@OL96 ~]$
--
[oracle@OL96 ~]$ source .bash_profile
[oracle@OL96 ~]$ sql / as sysdba
SQLcl: Release 25.1 Production on Sun Jun 08 09:33:25 2025

Copyright (c) 1982, 2025, Oracle.  All rights reserved.

Connected to:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04

3. ​配置 SQLcl 基础连接 

# 连接 Oracle 23ai Free 数据库
sql username/password@//localhost:1521/FREE

# 或使用 EZConnect 格式
sql user@//db_host:1521/service_name
4. ​启用 23ai 特性支持​

在 SQLcl 中设置兼容性参数:

-- 在 SQLcl 会话中执行
SET SQLCOMPATIBILITY '23'
5. ​常用配置优化
-- 启用自动补全(默认开启)
SET AUTOTRACE ON

-- 设置历史记录(保存 1000 条命令)
SET HISTSIZE 1000

-- 启用 JSON 输出格式(适合 23ai 的 JSON 功能)
SET SQLFORMAT JSON

-- 显示执行时间
SET TIMING ON

6. ​23ai 特定功能配置 

-- 向量搜索示例(使用 23ai 的 AI Vector Search)
SELECT content 
FROM documents 
ORDER BY VECTOR_DISTANCE(embedding, :query_vector) 
FETCH FIRST 5 ROWS ONLY;
7. ​登录属性配置​

创建 $HOME/sqlcl/login.sql 自动加载脚本:

-- login.sql 内容
SET SQLFORMAT ANSICONSOLE
SET FEEDBACK 1
DEFINE _EDITOR = vim
SET HISTSIZE 1000
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

 8. ​异常排除

# 启用调试模式
SQLCL_DEBUG=true sql user/pass@db

# 检查 23ai 特性兼容性
SELECT * FROM v$compatibility WHERE feature_id LIKE '%23AI%';

TIPS​:

undefined.Oracle 23ai 的 AI Vector Search 需要单独启用

undefined.使用 SET COMPATIBILITY 确保语法兼容性

undefined.通过 ALTER SYSTEM SET enable_vector_engine=TRUE 启用向量引擎(需要 DBA 权限)

9. 常用 SQLcl 命令

命令

说明

INFO

显示表结构

DDL

生成对象 DDL

SET SQLFORMAT JSON

JSON 格式输出

HISTORY

查看命令历史

LB STATUS

Liquibase 状态

VECTOR

向量搜索

<think>我们正在解决两个问题:1.ModuleNotFoundError:Nomodulenamed'taos';2.pip版本更新提示(从25.0.125.1.1)。根据引用资料上下文,我们可以分步骤解决。首先,解决模块缺失问题。根据引用[2]引用[3],我们需要安装taospy(TDengine的Python连接器)。注意,在TDengine3.x版本中,包名是taospy,而不是taos(尽管导入时使用importtaos)。其次,处理pip更新问题。提示更新pip,我们可以先更新pip,然后再安装taospy。步骤:1.更新pip(根据当前环境选择合适的命令)-在命令行中执行:```bashpython-mpipinstall--upgradepip```或者```bashpipinstall--upgradepip```注意:如果遇到权限问题,可以加上`--user`选项。2.安装taospy包(根据引用[2]):```bashpipinstalltaospy```如果是在Linux/macOS上,需要确保已经安装了TDengine的客户端驱动(因为taospy需要依赖动态库)。如果遇到动态库问题,请设置环境变量LD_LIBRARY_PATH,指向TDengine的动态库目录(例如:/usr/local/taos/driver)。3.验证安装:编写一个简单的测试程序(参考引用[3]):```pythonimporttaosconn=taos.connect(host='localhost',port=6030,user='root',password='taosdata')print('客户端信息:',conn.client_info)print('服务端信息:',conn.server_info)conn.close()```注意:如果连接时出现错误,请检查TDengine服务是否运行,以及连接参数(如host,port)是否正确。如果使用Windows,则无需单独安装客户端驱动(因为pip安装的包已经包含了预编译的驱动)。4.如果安装后仍然出现属性错误(如没有connect属性),可能是包安装不正确或版本问题。请尝试以下步骤:-确认安装的taospy版本:`pipshowtaospy`-卸载后重新安装:`pipuninstalltaospy`然后`pipinstalltaospy`5.如果使用PyCharm,可以按照引用[1]的方法,在PyCharm的图形界面中安装包:-打开设置:File->Settings->Project->PythonInterpreter-点击加号,搜索`taospy`并安装。6.关于pip更新提示:更新pip到25.1.1即可,不会有兼容性问题。现在,让我们按照步骤操作。注意:在Linux/macOS上,如果安装taospy后运行程序提示找不到libtaos.so,需要设置环境变量(引用[2]):```bashexportLD_LIBRARY_PATH=/usr/local/taos/driver:$LD_LIBRARY_PATH```可以将这行命令添加到~/.bashrc或~/.zshrc中,然后执行`source~/.bashrc`。根据引用[4],如果连接时遇到访问被拒绝的问题,可能需要检查TDengine的用户名密码是否正确,或者进入taosshell修改密码(使用`alteruserrootpass'新密码'`)。综上所述,我们分步解决:步骤一:更新pip(可选,但推荐)步骤二:安装taospy步骤三:设置动态库路径(仅Linux/macOS且遇到动态库问题)步骤四:验证连接我们重新整理一下代码,确保连接参数正确:注意:原始代码中使用的数据库是"power_meter",在连接前需要确保该数据库已经存在(可以使用`createdatabasepower_meter;`创建)。如果连接时出现错误,请根据错误信息调整连接参数(例如port默认是6030,如果修改过则需指定)。下面提供一个完整的示例代码(包括异常处理):</think> ### 解决Python模块缺失问题与pip更新 #### 问题分析 您遇到了两个核心问题: 1. `ModuleNotFoundError: No module named 'taos'`:Python无法找到TDengine的客户端库 2. pip版本更新提示(25.0.125.1.1):需要更新pip保证安装功能正常 根据引用资料,错误根源是**未正确安装`taospy`包**(TDengine官方Python连接器),且pip版本较旧会影响安装稳定性[^2]。 --- ### 解决方法(逐步操作) #### 🔧 步骤1:更新pip工具 在终端执行(Windows/Linux/Mac通用): ```bash # 升级pip到最新稳定版 python -m pip install --upgrade pip # 验证版本(应显示25.1.1+) pip --version ``` > 解决pip更新提示问题,确保后续安装可靠 #### 🔧 步骤2:安装`taospy`包 根据操作系统选择命令: ```bash # 通用安装方式 pip install taospy # 如遇权限问题(Linux/macOS) pip install --user taospy # 指定镜像源加速(国内用户) pip install taospy -i https://pypi.tuna.tsinghua.edu.cn/simple ``` #### 🔧 步骤3:解决动态库依赖(仅Linux/macOS) ```bash # 设置动态库路径(替换为实际安装目录) export LD_LIBRARY_PATH=/usr/local/taos/driver:$LD_LIBRARY_PATH # 永久生效(添加到~/.bashrc) echo "export LD_LIBRARY_PATH=/usr/local/taos/driver:\$LD_LIBRARY_PATH" >> ~/.bashrc source ~/.bashrc ``` #### 🔧 步骤4:测试连接代码 修改您的原始代码,添加异常处理: ```python import taos try: conn = taos.connect( host="172.16.10.5", user="root", password="taosdata", database="power_meter" ) print("✅ 成功啦!数据库连上啦!") print("客户端版本:", conn.client_info) # 验证连接[^3] print("服务端版本:", conn.server_info) conn.close() except Exception as e: print("❌ 连接失败:", e) ``` --- ### 关键点说明 1. **包名差异**:必须安装`taospy`而不是`taos`(导入时使用`import taos`)[^2] 2. **权限处理**:如遇权限错误,尝试: ```bash # Linux/macOS sudo pip install taospy # Windows(管理员权限运行CMD) pip install taospy ``` 3. **主机格式**:`host`参数应为IP或域名,**避免特殊字符**[^4] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值