D2RQ连接MariaDB报错求助:驱动过时与命令参数异常
解决建议
1. 修复命令行参数解析错误
你的命令里的&会被操作系统shell识别为后台运行指令,导致password和useSSL被当成独立命令执行。解决方法是把整个JDBC URL用双引号包裹:
generate-mapping -o iswc.ttl "jdbc:mariadb://localhost:3306/iswc?user=root&password=&useSSL=false"
2. 指定正确的JDBC驱动类
D2RQ 0.8.1默认加载旧的com.mysql.jdbc.Driver,但Connector/J 9.0.0已改用com.mysql.cj.jdbc.Driver;另外你连接的是MariaDB,用官方驱动兼容性会更好,分两种情况处理:
继续使用MySQL Connector/J 9.0.0
执行命令时通过-d参数手动指定新驱动类:
generate-mapping -o iswc.ttl -d com.mysql.cj.jdbc.Driver "jdbc:mariadb://localhost:3306/iswc?user=root&password=&useSSL=false"
改用MariaDB官方驱动(推荐)
- 下载适配MariaDB 10.4.x版本的
mariadb-java-clientjar包 - 将jar包放到
D2RQ\d2rq-0.8.1\lib\db-drivers目录 - 执行命令时指定MariaDB驱动类:
generate-mapping -o iswc.ttl -d org.mariadb.jdbc.Driver "jdbc:mariadb://localhost:3306/iswc?user=root&password=&useSSL=false"
3. 确保驱动被正确加载
如果仍提示找不到驱动,可尝试:
- 将驱动jar包移至D2RQ的主
lib目录(而非lib/db-drivers) - 手动指定classpath启动(Windows用
;分隔,Linux/macOS用:):
java -cp "d2rq-0.8.1.jar;lib/*;lib/db-drivers/*" d2rq.generate-mapping -o iswc.ttl -d com.mysql.cj.jdbc.Driver "jdbc:mariadb://localhost:3306/iswc?user=root&password=&useSSL=false"
4. 适配新版本驱动的URL参数(可选)
Connector/J 9.0.0和MariaDB驱动对参数规范有更新,可将useSSL=false替换为更标准的sslMode=DISABLED:
"jdbc:mariadb://localhost:3306/iswc?user=root&password=&sslMode=DISABLED"
内容的提问来源于stack exchange,提问作者Eng. Samer T
相关产品推荐
相关产品推荐

