Bug: 离线连接oracle找不到驱动
Chat2DB Version
2.0.1
Describe the bug
在公司内网使用连接oracle,报错“getJDBCDriver error : null”,其他的工具比如说datagrip可以自己配置驱动,chat2DB没看到有配置驱动的位置,是需要联网才能使用的吗?
在运行用户的HOME目录下会有一个 .chat2db 的目录, 里面有 jdbc-lib 子目录。 将jdbc驱动放入里面就可以了。 在有互联网访问的情况下会自动去 https://oss-chat2db.alibaba.com/lib/ 下载对应的驱动jar文件。如果是用docker 来运行chat2db的话,会放在容器里面的 /root/.chat2db/jdbc-lib 目录。
bash-4.4# pwd
/root/.chat2db/jdbc-lib
bash-4.4# ls -l
total 147380
-rw-r--r-- 1 root root 1030636 Jul 7 02:07 DmJdbcDriver18-8.1.2.141.jar
-rw-r--r-- 1 root root 845016 Jul 7 02:08 clickhouse-jdbc-0.3.2-patch8-http.jar
-rw-r--r-- 1 root root 6550443 Jul 7 02:07 db2jcc4_4.26.14.jar
-rw-r--r-- 1 root root 2543012 Jul 7 02:07 h2-2.1.214.jar
-rw-r--r-- 1 root root 60377960 Jul 7 02:11 hive-jdbc-3.1.2-standalone.jar
-rw-r--r-- 1 root root 1055255 Jul 7 02:07 kingbase8-8.6.0.jar
-rw-r--r-- 1 root root 589405 Jul 7 02:07 mariadb-java-client-3.0.8.jar
-rw-r--r-- 1 root root 41373330 Jul 7 02:08 mongo-jdbc-standalone-1.18.jar
-rw-r--r-- 1 root root 1439469 Jul 7 02:08 mssql-jdbc-11.2.1.jre17.jar
-rw-r--r-- 1 root root 1007502 Jul 7 02:07 mysql-connector-java-5.1.47.jar
-rw-r--r-- 1 root root 2513563 Jul 7 02:07 mysql-connector-java-8.0.30.jar
-rw-r--r-- 1 root root 1048283 Jul 7 02:08 oceanbase-client-2.4.2.jar
-rw-r--r-- 1 root root 4210517 Jul 7 02:07 ojdbc8-19.3.0.0.jar
-rw-r--r-- 1 root root 1661488 Jul 7 02:07 orai18n-19.3.0.0.jar
-rw-r--r-- 1 root root 1046770 Jul 7 02:08 postgresql-42.5.1.jar
-rw-r--r-- 1 root root 9401588 Jul 7 02:07 presto-jdbc-0.245.1.jar
-rw-r--r-- 1 root root 1475258 Jul 7 02:07 redis-jdbc-driver-1.3.jar
-rw-r--r-- 1 root root 12718409 Jul 7 02:07 sqlite-jdbc-3.39.3.0.jar
我的是mysql链接不上,报错“getJDBCDriver error : null”,按回答中的在.chat2db/jdbc-lib目录下放驱动jar包也没用,一样报错
我这是windows版本的,驱动放到 用户名/.chat2db/jdbc-lib下还是没效果,我看日志一直报错UnknownHostException: oss-chat2db.alibaba.com
我的是mysql链接不上,报错“getJDBCDriver error : null”,按回答中的在.chat2db/jdbc-lib目录下放驱动jar包也没用,一样报错
看看驱动名字是不是和上面列出的一致? 从 https://github.com/chat2db/Chat2DB/tree/main/chat2db-server/chat2db-plugins/chat2b-mysql/src/main/java/ai/chat2db/plugin/mysql/builder/DBConfigBuilder.java 这里看到
driverConfig.setJdbcDriver("mysql-connector-java-8.0.30.jar");
jar包名字要一致应该才能调用到。
UnknownHostException: oss-chat2db.alibaba.com
出现 UnknownHostException: oss-chat2db.alibaba.com 这个错误,说明没有识别到你放置的jdbc驱动,chat2db仍然在尝试从网上下载jdbc驱动。你可以检查一下你放置的jdbc驱动jar包文件名是不是和我列出来的一致。 或者你找一台有互联网的windows机器启动一下,让chat2db自动下载一下jdbc驱动,然后通过everything搜索一下,看看下载的jdbc驱动放置的位置在哪里的。
看了下ai/chat2db/plugin/oracle/builder/DBConfigBuilder.java,确实是把包名限制了,我把driver的包名改成19.3.0.0后就可以了,感谢,不过实际使用中需要AI辅助的话确实需要连网操作