/scm_prepare_database.sh报错 INFO Unable to find JDBC

本文详细介绍了在Cloudera SCM中配置MySQL数据库的过程,包括解决找不到JDBC驱动的问题,通过将mysql-connector-java.jar复制到指定目录,成功完成数据库配置。
部署运行你感兴趣的模型镜像
[root@master ~]# sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
Enter SCM password: 
JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/java/jdk1.8.0_181-cloudera/bin/java -cp :/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[                          main] DbCommandExecutor              INFO  Unable to find JDBC driver for database type: MySQL
[                          main] DbCommandExecutor              ERROR JDBC Driver com.mysql.jdbc.Driver not found.
[                          main] DbCommandExecutor              ERROR Exiting with exit code 3

注意看错误信息有个-cp :/opt/cloudera/cm/schema/../lib/*,翻译过来正好对应/opt/cloudera/cm/lib

所以可以这样,cp /usr/share/java/mysql-connector-java.jar /opt/cloudera/cm/lib。把mysql jar包往/opt/cloudera/cm/lib下放一份,再执行一下:

[root@master /]# sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
Enter SCM password: 
JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/java/jdk1.8.0_181-cloudera/bin/java -cp :/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

 

总结:

个人觉得应该看启动日志-cp 后面的路径 -cp后面的路径是哪,就把msyql jar包往哪放一份就行。

您可能感兴趣的与本文相关的镜像

GPT-SoVITS

GPT-SoVITS

AI应用

GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果

你运行的 `mk_bp.sh` 是一个用于构建 Qualcomm 平台(如 `msm_amss`)下 Boot Partition(BP)模块的 shell 脚本。这类脚本通常用于构建 modem、adsp、tz 等 TrustZone 模块,常见于 Android 的 modem 构建流程中。 --- ## 📌脚本功能解析 ### 📋 命令帮助信息 ```bash ./mk_bp.sh -h ``` 输出如下: ``` SCM.IT: ####### mk_bp ####### START Runing main -h all build: ./mk_bp.sh list target: ./mk_bp.sh -l module build: ./mk_bp.sh -m $module_name force build: ./mk_bp.sh -F ``` ### ✅含义解释 | 命令 | 说明 | |------|------| | `./mk_bp.sh` | 默认执行全量构建(所有模块) | | `./mk_bp.sh -l` | 列出当前可构建的目标模块 | | `./mk_bp.sh -m $module_name` | 构建指定模块(如 tz、modem 等) | | `./mk_bp.sh -F` | 强制重新构建,忽略缓存或依赖检查 | --- ## 🔧脚本结构推测(伪代码) 虽然你没有提供完整脚本,但根据常见结构,`mk_bp.sh` 通常是一个 shell 脚本,其内部逻辑大致如下: ```bash #!/bin/bash function usage() { echo "Usage: $0 [-l] [-m module] [-F]" echo " -h Show help" echo " -l List available targets" echo " -m Build specific module" echo " -F Force build" exit 1 } function list_targets() { echo "Available modules: tz modem adsp wlan ..." } function build_module() { local module=$1 echo "Building module: $module" # 实际构建命令,可能调用 make 或 build.py # 示例: # make -C $module_dir } function build_all() { echo "Building all modules..." for module in tz modem adsp; do build_module $module done } function main() { if [ "$1" == "-l" ]; then list_targets elif [ "$1" == "-m" ]; then if [ -z "$2" ]; then echo "Missing module name" usage else build_module $2 fi elif [ "$1" == "-F" ]; then echo "Force rebuilding all modules" # 清理 + 构建 build_all elif [ -z "$1" ]; then build_all else usage fi } main "$@" ``` --- ## 🔍典型使用场景 ### 🧱 全量构建 ```bash ./mk_bp.sh ``` > 构建所有支持的模块(如 tz、modem、adsp 等) --- ### 📋 列出可构建模块 ```bash ./mk_bp.sh -l ``` > 输出: ``` Available modules: tz modem adsp wlan ... ``` --- ### 🛠️ 构建特定模块(如 tz) ```bash ./mk_bp.sh -m tz ``` > 仅构建 TrustZone 模块 --- ### 🔁 强制重新构建 ```bash ./mk_bp.sh -F ``` > 忽略缓存,强制重新构建所有模块 --- ## 🧩与 `build.py` 的关系 通常 `mk_bp.sh` 是对 `build.py` 的封装,例如: ```bash python build.py -p SM6650 -t $module --jobs 8 ``` 即: ```bash ./mk_bp.sh -m tz ``` 等价于: ```bash python build.py -p SM6650 -t tz -j 8 ``` --- ## 📌总结 | 命令 | 功能 | |------|------| | `./mk_bp.sh` | 全量构建 | | `./mk_bp.sh -l` | 列出可构建模块 | | `./mk_bp.sh -m $module` | 构建指定模块 | | `./mk_bp.sh -F` | 强制构建所有模块 | --- ##
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值