升级到SonarQube7.6 报Web server failing to start
问题描述
本地原来环境是sonarqube6.2+sonar-scanner2.8+mysql5.7,遇到新增加go的静态代码扫描,安装sonar-go插件后,sonarqube就起不来了,报不兼容,要求升级到更高版本。
SonarQube更高版本取消了对mysql数据库的支持,考虑到还想利用mysql数据库,同时跟公司另外一套sonar环境保持一致,选择了SonarQube7.6.
在网上下载了SonarQube7.6 community版本解压后,修改陪着文件sonar.properties, 跟之前mysql配置完全一样,没有新创建数据库,结果使用sonar用户启动时,就报 上面的错误。
问题解决
参考了如下文章:
- https://blog.csdn.net/weixin_43557605/article/details/95252397?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
- https://blog.csdn.net/hqbootstrap1/article/details/84405318
- https://community.sonarsource.com/t/web-server-failing-to-start-on-a-new-installation/6954/1
尝试了上面所有的解决思路,方案,问题依然存在。后来想,会不会跟数据库不兼容有关系。
于是,照着如下脚本,重新创建了sonar76数据库:
– 数据库
CREATE DATABASE sonar76 CHARACTER SET utf8 COLLATE utf8_general_ci;
– 用户
CREATE USER ‘sonar’ IDENTIFIED BY ‘sonar’;
– 权限
GRANT ALL ON sonar76.* TO ‘sonar’@’%’ IDENTIFIED BY ‘sonar’;
GRANT ALL ON sonar76.* TO ‘sonar’@‘localhost’ IDENTIFIED BY ‘sonar’;
FLUSH PRIVILEGES;
在执行授权命令的时候,结果又碰到Mysql ERROR 1044 (42000) Access denied for user ‘root’@‘localhost’。
又是一顿定位,参考:
https://www.cnblogs.com/kerrycode/p/9198566.html
发现是登录的时候应该使用localhost登录,即
#mysql -uroot -p
不能指定-h127.0.0.1
一顿鸡飞狗跳后,新数据库创建完成,再更改sonar.properties使用sonar76数据库,重新启动。
所有问题都不复存在。
再列举一下碰到的所有问题:
- Failed to start SonarQube, Unable to start JVM: Permission denied (13)
这个问题通过设定RUN_AS_USER=root解决; - INFO app[][o.s.a.SchedulerImpl] Process [web] is stopped
- WARN app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
- ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’
解决办法,重新启动mysql,通过mysql -uroot -p登录mysql。