mysql 5.6-5.7, sonarqube-6.7.6(LTS)
请先确保linux已经安装了jdk8,并且已经配置好了环境变量
Sonar是基于Java开发的,因此运行Sonar自然需要JDK
java 安装及环境变量配置,自行百度。
1.新开的云服务器,需要检测系统是否自带安装mysql
# yum list installed | grep mysql
2.如果发现有系统自带mysql,果断这么干
# yum -y remove mysql-libs.x86_64
3.随便在你存放文件的目录下执行,这里解释一下,由于这个mysql的yum源服务器在国外,所以下载速度会比较慢,还好mysql5.6只有79M大,而mysql5.7就有182M了,所以这是我不想安装mysql5.7的原因
# wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
4.接着执行这句,解释一下,这个rpm还不是mysql的安装文件,只是两个yum源文件,执行后,在/etc/yum.repos.d/ 这个目录下多出mysql-community-source.repo和mysql-community.repo
# rpm -ivh mysql-community-release-el6-5.noarch.rpm
5.这个时候,可以用yum repolist mysql这个命令查看一下是否已经有mysql可安装文件
#yum repolist all | grep mysql
6.安装mysql 服务器命令(一路yes):
# yum install mysql-community-server
7.安装成功后
# service mysqld start
8.由于mysql刚刚安装完的时候,mysql的root用户的密码默认是空的,所以我们需要及时用mysql的root用户登录(第一次回车键,不用输入密码),并修改密码
# mysql -u root
# use mysql;
# update user set password=PASSWORD("这里输入root用户密码") where User='root';
# 使用 mysql 命令为 root 用户授权 mysql 远程连接服务,这样客户端才可以连接
# grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
# flush privileges;
说明:此命令是为密码为 root 、IP(%)任意的 root 用户授权。(%:模糊查询,所有 IP 都可以,,可指定其他主机 IP;BY 后的 'root' 为密码)
修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将localhost改为192.168.1.123,这表示只允许局域网的192.168.1.123这个ip远程访问mysql
9.查看mysql是否自启动,并且设置开启自启动命令
# chkconfig --list | grep mysqld
# chkconfig mysqld on
10.mysql 版本
SELECT VERSION()
如果遇到了:
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
原因是:因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的''@'localhost'可以看出来,解决办法:
方法一:
1.关闭mysql
# service mysqld stop
2.屏蔽权限
# mysqld_safe --skip-grant-table
屏幕出现: Starting demo from .....
3.新开起一个终端输入
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
mysql> \q
方法二:
1.关闭mysql
# service mysqld stop
2.屏蔽权限
# mysqld_safe --skip-grant-table
屏幕出现: Starting demo from .....
3.新开起一个终端输入
# mysql -u root mysql
mysql> delete from user where USER='';
mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
mysql> \q
Sonar要求mysql必须是InnoDB存储引擎
如果不是InnoDB,设置为InnoDB,修改配置文件/etc/my.cnf
# vi /etc/my.cnf
[mysqld]
default-storage-engine=INNODB
设置mysql缓存参数,
a 设置innodb_buffer_pool_size,参数值设置尽可能大一些,这个参数主要是缓存InnoDB表的索引,数据,插入数据时的缓冲
默认值:128M,我们这里设置为256M
b 设置mysql的查询缓存quert_cache_size的开关为1,然后设置最少15M,重启mysql数据库
[mysqld]
innodb_buffer_pool_size = 256M
query_cache_type=1
query_cache_size=32M
# service mysqld restart
查看缓存设置是否生效
在mysql中新建一个sonarQube数据库(UTF-8编码)
从官网下载最新LTS版本的sonarQuba安装包(sonarqube-6.7.6.zip)
a linux命令行下执行下载:
# wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.6.zip
解压安装并更名
# unzip sonarqube-6.7.6.zip
# mv sonarqube-6.7.6 sonarQube
之前介绍组成的时候说sonarqube是sonar的服务端,相当于一个web服务器,用来发布应用,在线浏览、配置分析等。怎么样?有没有很面熟的感觉?是不是有点像tomcat呢?
bin:sonarqube运行命令文件夹
conf:sonarqube配置文件夹
data:嵌入式数据库的数据(H2数据库引擎),建议只用于测试和演示
elasticsearch:搜索引擎
extensions:sonarqube的插件等存放文件夹
lib:sonarqube存放的运行库文件夹(jar)
logs:sonarqube日志文件夹
temp:sonarqube临时文件夹
web:sonarqube系统UI界面文件夹
# cd sonarQube/conf/
# vi sonar.properties
Mysql数据用户名
sonar.jdbc.username=root
sonar.jdbc.password=root #你安装的数据密码
配置mysql数据库
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarQube?useUnicode=true&characterEncodixxxx
设置sonar服务
sonar.web.host=0.0.0.0
sonar.web.context=/sonarQube
sonar.web.port=9000
我是在虚拟机安装的,如果是在阿里云安装,还得设置安全组:
由于6.6版本加入了elasticsearch,不能以root用户启动,因为安全问题elasticsearch
不让用root用户直接运行,所以要创建新用户,用新用户启动
//创建esuser用户
//目录组和用户都是esuser
//sonarqube文件设置777 //编写配置文件
# useradd esuser
# chown -R esuser:esuser sonarQube #代表用户组的意思,你sonar目录路径
# chmod 777 -R sonarQube
# vi sonarQube/elasticsearch/config/elasticsearch.yml
//开启端口和指定服务
network.host: 192.168.1.27(请填写自己服务器的ip)
http.port: 9200
如果启动中出现错误:如:
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解决65536:
切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
解决262144:
切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl –p
如果启动不成功,去查看日志,根据日志,日志会说报错原因,可自行百度:
浏览器中输入:http://192.168.1.27:9000/sonarQube
帐号密码默认都为:admin,登录之后下载中文汉化包,然后重启sonarQube:sh sonar.sh restart
安装完成
汉化:
包如下:
checkstyle-sonar-plugin-4.17.jar
sonar-java-plugin-5.9.2.16552.jar
sonar-javascript-plugin-5.0.0.6962.jar
sonar-l10n-zh-plugin-1.19.jar
上传到sonar安装目录的,
/home/esuser/sonarQube/extensions/plugins,然后重启
./sonar.sh restart
从官网下载scanner对应的版本后直接解压 :
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
通过编辑xxxx/conf/sonar-scanner.properties更新全局设置以指向SonarQube服务器
将xxxx/bin设置到环境变量PATH中
在命令行输入sonar-scanner –h,验证安装结果
INFO:
INFO: usage: sonar-scanner [options]
INFO:
INFO: Options:
INFO: -D,--define <arg> Define property
INFO: -h,--help Display help information
INFO: -v,--version Display version information
INFO: -X,--debug Produce execution debug output
https://blog.csdn.net/htpiaoye/article/details/72382020
使用SonarQube Maven插件分析代码使用SonarQube Maven插件分析代码
编辑位于$MAVEN_HOME/conf或〜/ .m2中的settings.xml文件,设置SonarQube服务器
sonar
true
http://192.168.1.149:9000/sonarQube
注意,这个必须放对位置!!!!!
分析Maven项目,运行Maven目标:sonar:sonar在pom.xml文件所在的目录中
执行命令:
mvn sonar:sonar
登录sonarQube Web查看结果