DevOps系列(2)-SonarQube之PostgreSQL
上一篇从整体上讲了下DevOps大概涉及到了哪些内容,以及主要工作流程,接下来我们将分步详细介绍各个部分的使用。
概览
首先从 SonarQube 开始说起,SonarQube 是一个可用于检测重复代码、潜在bug、代码规范、安全性漏洞以及单元测试等,并能够持续分析和评测项目源代码质量的代码质量管理平台。SonarQube由4个部件组成:一个SonarQube Server,一个SonarQube Database,若干SonarQube Plugin,若干SonarScanner。下图取自官方文档.
目前最新版本已经到了8.3,但是本文使用的是SonarQube 7.9 LTS版,因为该版本为最新的长期支持版。这部分先介绍SonarQube Database,因为数据库是基础。
数据库选择
SonarQube目前支持的数据库有PostgreSQL,Microsoft SQL Server,Oracle,说是选择,其实也没什么可选的,早期还支持MySql,但是从7.9开始就已经不再提供支持了(其实依然可以用),开源免费的基本就剩下PostgreSQL了,并且官方也推荐使用PostgreSQL,这也算是释放了一个小小的信号,新的项目可以多考虑考虑用PostgreSQL替代MySql,近几年PostgreSQL发展非常迅速,有兴趣的可以去db-engines看一下数据库排名及趋势。
PostgreSQL排名第四,并且无论同比还是环比都有较高的增长率,而其他排名靠前的数据库环比均有所下滑。说这么多,其实就是一句话,选PostgreSQL就对了。
安装
目前PostgreSQL版本已经到12了,但是SonarQube 7.9 LTS支持的最新版是10,那我们也直接用10,其实PostgreSQL 9就已经够用了,数据库的稳定性往往远大于功能性,通常也不需要最新的版本,新功能通常情况下也用不上。
到官网页面,选择对应的版本及系统(我的是CentOS 7),如下图所示:
拷贝如下脚本,逐个执行安装并启动服务。
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86\_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql10-server -y
/usr/pgsql-10/bin/postgresql-10-setup initdb
systemctl enable postgresql-10
systemctl start postgresql-10
安装完成后,可通过如下命令查看下当前版本:
[root@Node01 ~]# psql --version
psql (PostgreSQL) 10.13
修改密码
PostgreSQL安装成功后,会在Linux系统中默认创建一个postgres
用户,必须切换到postgres
才可以访问PostgreSQL数据库,root
用户无权访问,如下所示:
[root@Node01 ~]# cat /etc/passwd | grep postgres
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
[root@Node01 ~]# psql postgres
psql: FATAL: role "root" does not exist
[root@Node01 ~]# su postgres
bash-4.2$ psql postgres
could not change directory to "/root": Permission denied
psql (10.13)
Type "help" for help.
postgres=#
注意,切换postgres
用户后可能会提示could not change directory to "/root": Permission denied
,这是因为postgres
用户没有访问/root
目录的权限,可以登录root
用户提升postgres
用户的权限。当然其实也不需要那么麻烦,直接无视就可以了,因为我们只需要用过postgres
用户对PostgreSQL数据库进行操作而已,不需要访问其他资源。
PostgreSQL默认账号也是postgres
,没有密码,可以通过下面脚本修改密码(也可以新建一个用户,会更安全,但实际上,数据库外网应该是不能访问的,所以我直接使用默认用户):
alter user postgres with password '123456';
远程访问设置
进入/var/lib/pgsql/10/data
目录,修改postgresql.conf
配置文件,修改为监听所有IP:
listen_addresses = '*'
修改pg_hba.conf
配置文件,添加验证方式,并只接收来自192.168.0.0/16
网段的请求:
# IPv4 local connections:
host all all 127.0.0.1/32 ident
host all all 192.168.0.0/16 md5
基本操作
系统命令
下面操作需要切换到postgres
用户执行。
操作 | 说明 |
---|---|
psql -l | 查看数据库列表 |
createdb testdb | 创建testdb数据库 |
psql testdb | 切换到testdb数据库 |
dropdb testdb | 删除testdb数据库 |
createuser dbuser | 创建dbuser用户 |
dropuser dbuser | 删除dbuser用户 |
数据库命令
下面操作需要切换到具体的数据库执行。
操作 | 说明 |
---|---|
\h | 查看SQL命令帮助 |
? | 查看psql命令帮助 |
\l | 查看数据库列表 |
\q | 退出客户端程序psql |
\c | 从一个数据库中切换到另一个数据库 |
\dt | 查看表 |
\d | 查看表结构 |
管理工具
为了操作方便,也可以安装一个可视化的管理工具---pgAdmin,进入yum仓库页面,按步骤安装即可。我只装了web版,并且跟数据库安装在了同一台服务器上,用到的脚本如下:
# 设置仓库
rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-1-1.noarch.rpm
# 仅安装WEB模式
yum install pgadmin4-web -y
# 执行脚本完成配置
/usr/pgadmin4/bin/setup-web.sh
到这里,数据库准备好了,下一步我们可以安装SonarQube Server了。
DevOps系列(2)-SonarQube之PostgreSQL的更多相关文章
- DevOps系列——Jenkins/Gitlab自动打包部署
前面只说了DevOps的两个基础组件Jenkins和GitLab,客官也不要着急,我们玩就玩的深入一点,Gitlab和Jenkins的各种配置和 插件很多,也够啃一阵子的,不要照着操作一通就感觉万事大 ...
- DevOps系列(1)-总体架构
扯闲淡 在进入正式话题之前,先扯个淡,这算是第一篇我正式在博客上发布的随笔吧,之前也一直有想写点什么,将自己多年的工作经验分享出来,供大家参考点评,但是奈何一直对自己的文字功底不自信(其实也确实比较烂 ...
- 补习系列(19)-springboot JPA + PostGreSQL
目录 SpringBoot 整合 PostGreSQL 一.PostGreSQL简介 二.关于 SpringDataJPA 三.整合 PostGreSQL A. 依赖包 B. 配置文件 C. 模型定义 ...
- Jenkins系列——使用SonarQube进行代码质量检查
1.目标 之前已经写过一篇关于Jenkins和SonarQube的一篇博客<jenkins集成sonar>,本文在参考前文的基础上,做了详细的补充. 使用SonarQube进行代码质量检查 ...
- CODING DevOps 系列第一课:基于开源工具链打造持续交付平台
当下软件发展趋势 当今 IT 行业发展中比较流行的几个技术,首先是微服务化,将原有的一个系统拆分成多个,意味着有多个系统需要构建.测试.部署和运维. 第二个是敏捷开发模式,需求粒度更细化,要求一个可独 ...
- CODING DevOps 系列第三课:云计算、云原生模式下 DevOps 的建设
本文首先会和大家分享当前整个应用生命周期的演变历程,然后讲解云计算模式下 DevOps 建设包含的过程.流程规范和标准,最后讲解云原生时代到来会带来哪些改变,以及标准化的建设会有哪些改变和突破. 应用 ...
- CODING DevOps 系列第四课:DevOps 中的质量内建实践
什么是质量内建 随着时间的推移,我们项目的开发效率会逐渐降低,直到几年之后整个项目可能就无法维护,只能推倒重来.具体的表现首先就是随着时间推移,我们会发现整个需求列表里面能做的需求越来越少,因为每当我 ...
- CODING DevOps 系列第五课:微服务测试——微服务下展开体系化的微服务测试
微服务测试的痛点与挑战 这张图可以形象地展示单体服务和微服务的对比,单体应用就像左边巨大的集装箱,软件模块和应用都包括其中:而微服务就像是由一个小集装箱组成,微小的服务组成一个庞大.完整的系统.单体服 ...
- 【Azure DevOps系列】什么是Azure DevOps
DevOps DevOps是一种重视"软件开发人员(Dev)"和"IT运维技术人员(Ops)"之间沟通合作的文化,它促进开发和运营团队之间的协作,以自动化和可重 ...
随机推荐
- Qt高级编程 高清PDF+源|网盘下载地址附提取码|
书籍作者:Mark Summerfield(马克 . 萨默菲尔德)(英) 书籍译者:闫锋欣内容简介:本书是一本阐述Qt高级编程技术的书籍.本书以工程实践为主旨,是对Qt现有的700多个类和上百万字 ...
- PHP array_uintersect() 函数
实例 比较两个数组的键值(使用用户自定义函数比较键值),并返回交集: <?php function myfunction($a,$b) { if ($a===$b) { return 0; } ...
- 数据结构C语言实现----直接插入排序
直接插入排序(简单插入排序) 给定一个数字串:2 6 7 8 9 3 2 3 4 按从小到大的顺序排列输出 首先把第一个数字放到一个小组里:(2)6 7 8 9 3 2 3 4 让后从第二个数字开始往 ...
- Skill 脚本演示 ycNetToPin.il
https://www.cnblogs.com/yeungchie/ ycNetToPin.il 通过选中一个 instance ,分析与其连接且同时选中的 wire 上含有的 netName ,自动 ...
- bzoj 3436小K的农场
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2327 Solved: 1105 [Submit][Status][Discu ...
- 使用ProxySQL实现MySQL Group Replication的故障转移、读写分离(二)
在上一篇文章<使用ProxySQL实现MySQL Group Replication的故障转移.读写分离(一) > 中,已经完成了MGR+ProxySQL集群的搭建,也测试了ProxySQ ...
- 【可视化-2】将图像当作DSM进行三维显示
上一篇文章中,已经跳出颜色或者亮度的局限,将图像视作一般化的栅格数据,并提供了四种利用颜色和亮度来直观表示栅格间取值差异的可视化方法. 栅格数据的四种可视化方式 这一回,我们又要从一般化走向特殊化.栅 ...
- 用var声明变量,在java中居然有这么多细节,你都了解么?
简介 Java SE 10引入了局部变量的类型推断.早先,所有的局部变量声明都要在左侧声明明确类型. 使用类型推断,一些显式类型可以替换为具有初始化值的局部变量保留类型var,这种作为局部变量类型 的 ...
- Java高级篇 JVM
JVM是什么? JVM起了什么作用? JVM包含了什么? JVM中, 一个类 程序是怎么加载的? JVM中垃圾回收机制?
- Schema约束, dom4j解析
Schema是新的XML文档约束:Schema要比DTD强大很多,是DTD替代者;Schema本身也是XML文档,但Schema文档的扩展名为xsd,而不是xml .Schema功能更强大,数据类型更 ...