Solr 7.2.1连接数据库报错:无法加载com.mysql.jdbc.Driver驱动
解决Solr 7.2.1全量导入MySQL失败(找不到JDBC驱动)的问题
你遇到的核心问题是Solr无法加载MySQL的JDBC驱动类com.mysql.jdbc.Driver,这是Solr连接数据库时的高频问题,我来帮你一步步排查解决:
一、先确认驱动包的存在与位置
Solr本身不自带MySQL JDBC驱动,必须手动添加适配的驱动包:
- 首先下载对应版本的MySQL Connector/J驱动:
- 若你用的是MySQL 5.x版本,选Connector/J 5.1.x系列(比如5.1.48);若为MySQL 8.x,选Connector/J 8.x系列(比如8.0.30),确保驱动版本和MySQL版本兼容。
- 将下载好的
.jar驱动包放到Solr的正确目录:- 全局生效(所有Core可用):放到Solr安装目录下的
server/lib/ext文件夹(Mac下brew安装的Solr路径一般是/usr/local/opt/solr/libexec/server/lib/ext;手动解压的Solr则是solr-7.2.1/server/lib/ext)。 - 仅当前Core生效:在目标Core目录下新建
lib文件夹,把驱动包放入(比如solr-7.2.1/server/solr/[你的Core名]/lib)。
- 全局生效(所有Core可用):放到Solr安装目录下的
二、适配Java 9与驱动类的兼容性
你使用的是Java 9,这里有个关键细节要注意:
- 若用Connector/J 8.x,驱动类已从
com.mysql.jdbc.Driver更新为com.mysql.cj.jdbc.Driver,同时JDBC URL需要添加时区参数避免报错。修改你的data-config.xml:
<dataConfig> <dataSource name="mysqltest" type="JdbcDataSource" driver="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://localhost:3306/product?useSSL=false&serverTimezone=UTC" user="solr" password="你的数据库密码"/> <!-- 其余dataConfig配置... --> </dataConfig>
- 若坚持用Connector/J 5.x,
com.mysql.jdbc.Driver仍可使用,但Java 9可能需要额外模块支持:找到Solr的solr.in.sh配置文件(Mac下brew安装的路径为/usr/local/etc/solr/solr.in.sh),添加一行:
SOLR_OPTS="$SOLR_OPTS --add-modules java.sql"
三、重启Solr并验证配置
驱动包添加或配置修改后,必须重启Solr服务才能生效:
- brew安装的Solr:执行
brew services restart solr - 手动解压的Solr:先执行
./solr stop停止服务,再执行./solr start启动
重启后尝试全量导入,同时额外检查:
- 数据库用户名、密码是否正确,该用户是否拥有
product数据库的访问权限 - MySQL服务是否正常运行,端口3306是否能正常访问
内容的提问来源于stack exchange,提问作者juettemann
相关产品推荐
相关产品推荐

