
# SonarQube 部署
#### 查看MySQL引擎
结合 SonarQube，MySQL 数据库最好使用 InnoDB 引擎，可提高性能。 看你的 mysql 现在已提供什么存储引擎:
```
mysql> show engines;
```
图1查看引擎1   
![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001809753593.png)
看你的 mysql 当前默认的存储引擎:
```
mysql> show variables like '%storage_engine%';
```
图2查看引擎2   
![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001809754973.png)
如果查询的结果和上图显示的效果不一致，需要做以下配置：
修改 MySQL 存储引擎为 InnoDB
\[mysqld\] 下面加入 default-storage-engine=INNODB
```
# vi /etc/my.cnf
[mysqld]
default-storage-engine = INNODB
```
重启 mysql 服务器
```
# systemctl restart mysql.service
```
再次登录 MySQL 查看默认引擎设置是否生效
```
mysql> show variables like '%storage_engine%';
```
图3查看引擎3   
![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001762856876.png)
#### 配置innodb_buffer_pool_size
innodb_buffer_pool_size 参数值设置得尽可能大一点 这个参数主要作用是缓存 innodb 表的索引，数据，插入数据时的缓冲 默认值:128M，专用 mysql 服务器设置的大小:操作系统内存的 70%-80%最佳。 设置方法:my.cnf 文件\[mysqld\] 下面加入 innodb_buffer_pool_size 参数
```
# vi /etc/my.cnf
[mysqld]
innodb_buffer_pool_size = 256M
```
![](https://support.huaweicloud.com/tcrc-education/public_sys-resources/note_3.0-zh-cn.png)
这里设置为 256M，因为不是专用的 MySQL 数据库服务器，还有很多其他的服务需要占用系统内存
#### 配置query_cache_size
设置 MySQL 的查询缓存 query_cache_size, 最少设置 15M
```
# vi /etc/my.cnf
[mysqld]
query_cache_type=1
query_cache_size=32M
```
重启 mysql 服务器
```
# systemctl restart mysql.service
```
验证缓存设置是否生效:
```
mysql> show variables like '%query_cache%';
```
图4验证缓存   
![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001762860424.png)
#### 创建 sonarqube 数据库(UTF-8 编码)
```
mysql> CREATE SCHEMA `sonar` DEFAULT CHARACTER SET utf8;
```
#### 安装SonarQube Web Server
下载最新 LTS 版的 SonarQube 安装包(当前版本为 sonarqube-6.7.1.zip): 下载地址: <http://www.sonarqube.org/downloads/>
图5下载地址   
![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001762862136.png)
#### 下载sonarqube
1. 切换到普通用户（heyuqiang）
   ```
   $ cd /heyuqiang
   $ wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.7.zip
   ```
   
2. 解压安装
   ```
   $ unzip sonarqube-6.7.7.zip
   $ mv sonarqube-6.7.7 sonarqube
   ```
   
 
#### 配置sonarqube
```
$ cd /home/heyuqiang/sonarqube/conf
$ vi sonar.properties
sonar.jdbc.username=root
sonar.jdbc.password=heyuqiang
#----- MySQL 5.6 or greater
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
sonar.jdbc.url=jdbc:mysql://192.168.1.181:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewrite
BatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.host=0.0.0.0
sonar.web.context=/sonar
sonar.web.port=9000
```
保存以上配置(注意，要看看默认的 9000 端口是否已被占用)
#### 添加防火墙例外
1. 使用root用户执行命令 开启9000 端口。
   ```
   firewall-cmd --zone=public --add-port=9000/tcp --permanent
   ```
   
2. 重新加载
   ```
   firewall-cmd --reload
   ```
   
 
#### 启动和测试
1. 切换到普通用户（heyuqiang）启动SonarQube Web Server
   ```
   $ /home/heyuqiang/sonarqube/bin/linux-x86-64/sonar.sh start
   ```
   初次启动会自动建表和做相应的初始化
   
2. 查看日志
   ```
   $ tail -f /home/heyuqiang/sonarqube/logs/sonar.log
   ```
   
3. 浏览器访问：http://192.168.1.180:9000/sonarqube/
   图6启动服务   
   ![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001763025628.png)
   看到上图页面说明sonarqube服务启动了。
   
 
#### 初次登录sonarqube设置
1. Log in sonarqube默认用户名：admin 密码：admin
   图7登录   
   ![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001762872832.png) 
2. 首次登录成功后提示生成令牌，输入用户单击Gennerater
3. \>heyuqiang: 6700712a 2c8ef60a36dfc67e77a6a665491aa9b9
   图8设置1   
   ![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001809917161.png)
   图9设置2   
   ![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001809917417.png) 
4. 选择开发语言和工具
   图10开发语言与工具选择1   
   ![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001809921329.png)
   ```
   mvn sonar:sonar \
   -Dsonar.host.url=http://192.168.1.180:9000/sonarqube \
   -Dsonar.login=51bfdf87b23c2f2b79e940b10b33093b0ec97586
   ```
   图11开发语言与工具选择2   
   ![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001809883113.png)
   完成初次设置。
   
 
#### 安装chinese Pack 汉化包
图12汉化包安装1   
![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001809885089.png)
1. 单击Install 安装汉化包。
   图13汉化包安装2   
   ![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001809892277.png) 
2. 安装完成之后单击Restart重启sonarqube 汉化完成。
   图14汉化包安装3   
   ![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001810055721.png) 
 
#### 设置sonarqube 开机启动
使用root用户编辑/etc/rc.local文件，执行命令：
```
# vi /etc/rc.local
```
加入：
```
## sonarqube
su - heyuqiang -c '/home/heyuqiang/sonarqube/bin/linux-x86-64/sonar.sh start'
```
温馨提示：
第一次使用开机启动时需要为/etc/rc.local 文件赋权限
```
chmod +x /etc/rc.local
chmod +x /etc/rc.d/rc.local
```
#### 修改管理员admin账号密码
浏览器访问：http://10.0.0.85:9000/sonar/account/security/
图15管理员账号密码修改   
![](https://support.huaweicloud.com/tcrc-education/zh-cn_image_0000001762908234.png)
