jenkins使用mysql作为用户登录库报错:retrieveUser returned null
背景:
自建jenkins想配置mysql验证(数据库已创建完成),网上未找到任何资料,自己研究好久终于找到了插件,安装后填写配置信息,重启后直接报错了
日志就是说用户名或密码错了,思路先不说了,直接上正确配置
配置步骤
一、数据库配置
1.搭建过程略
用户名密码自行配置
2.创建库
名称:jenkins
3.创建表
名称:jenkins_user
具体情况见图,字段共4个,使用sql或者图形化都可以,创建后随便写个指进去即可
注意:password字段要写md5加密后的字符,加密方法网上自行找
二、jenkins配置
1.确认目前的登录方式
进入“系统配置”-“全局安全配置”-“访问控制”-“安全域”
查看是否有MySQL,默认是没有。
2.安装验证插件
进入“系统管理”-“管理插件”-“高级”-“上传插件”,将mysql-auth.jpi插件上传,插件会自动安装,安装位置在$jenkins_home/plugins/mysql-auth/目录
3.安装mysql连接jar文件
将mysql-connector-java-5.1.46.jar包上传到系统$jdk/jre/lib目录下,重启jenkins服务
4.配置mysql访问控制方式
进入“系统配置”-“全局安全配置”-“访问控制”-“安全域”,应该会有MySQL选项
选中后,按实际情况填写,然后应用即可
5.至此,配置完成,即需要使用数据库里的用户登录
6.查看配置文件验证
配置完成后,可打开$jenkins_home/config.xml文件,找到"hudson.plugins.mysql.MySQLSecurityRealm"字段
确认配置信息
三、踩过的坑
1.mysql链接的jar包没有上传,没有这个包也汇报用最上面图的错误,但不会提示数据库连接问题。
2.mysql-auth.jpi插件是手动上传的,我从jenkins自带的插件库没有找到,(一开始不知道叫啥名字,所有mysql相关都下载了也不好使)。
3.重点,在jenkins配置里面一定点开“高级”,选一下验证方式和端口,不选是不会默认的,尤其是验证方式(至少我是这样,后续手动改的配置文件),然后就还报第一图的错误,我就是最开始没有这步操作,研究好久。
4.一旦配置出问题,无法登陆jenkins,参照上面手动修改配置信息即可。