openGauss数据库的安装与使用
VMware+CentOS7.6+OpenGauss2.0.1 极简版安装
环境准备
Arch:x86-64
OS:Win11
VMware:16.1.2
安装 CentOS 7.6
CentOS 镜像:CentOS-7.6.1810
VMware 中创建新的虚拟机时:1CPU 2Core 4GB NAT 其他选择默认配置即可
CentOS 引导安装:
语言选择英语
打开网络
设置时区
安装位置和分区
软件选择最小安装(也可以选带 GUI 安装)
开始安装
设置 ROOT 密码和新建用户
安装完成后重启
配置 CentOS7.6
简单配置
设置字体 setfont lat4-19
重新安装 VMware Tools(Optional)(对于无 GUI 的应该没啥用,可以在本地 ssh 到 vmware 中就可以复制粘贴了)
使用 MobaXterm SSH 连接
yum 源更新 yum update
安装 Python3.6 yum install -y python36
安装其他依赖yum install -y bzip2 libaio-devel flex bison ncurses-devel glibc-devel patch
关闭防火墙和 SeLinux,然后重启,重连 ssh
设置字符集参数:在/etc/profile 文件中添加”export LANG=XXX”(XXX 为 Unicode 编码)
检查设置时区
关闭 swap 交换内存(Optional) swapoff -a
关闭 RemovelPC,CentOS 操作系统默认为关闭
开始安装
创建用户组 dbgrp、用户 omm,将该用户添加至 root 组,并修改用户 omm 的密码
配置共享文件夹,把 openGauss 的安装包(2.0.1 极简版)放进去
以 root 用户创建软件目录,以 omm 用户登录解压
进入 simpleInstall 目录,执行安装脚本 sh install.sh -w xxxx
出现如下错误:
解决办法:
在/etc/sysctl.conf 中加入语句kernel.sem = 250 32000 100 999,然后执行sysctl -p
执行完安装脚本之后:
openGauss 端口号默认为 5432
默认生成名称为 postgres 的数据库
数据库目录安装路径/opt/software/openGauss/data/single_node,其中/opt/software/openGauss 为解压包路径,data/single_node 为新创建的数据库节点目录。
使用 ps 和 gs_ctl 查看进程是否正常(如果没有找到 gs_ctl,配置环境变量即可 export PATH=/opt/software/openGauss/bin:$PATH,如果缺失 lib 则配置LD_LIBRARY_PATH)
如果 ps 里没有的话可以先重启一下:
gs_ctl restart -D /opt/software/openGauss/data/single_node -Z single_node
连接与使用
Gsql 方式
数据库安装完成后,默认生成名称为 postgres 的数据库,默认端口是 5432。
因为 omm 用户是管理员用户,因此系统显示“DBNAME=#”。若使用普通用户身份登录和连接数据库,系统显示“DBNAME=>”。
“Non-SSL connection”表示未使用 SSL 方式连接数据库。如果需要高安全性时,请使用 SSL 连接。
查看对象操作:
查看帮助信息:?
列举数据库:\l
列举表:\dt
查看表结构:\d tablename
切换数据库:\c dbname
列举 schema:\dn
查看索引:\di
远程连接前的准备
配置数据库用户和权限(omm 不能用于远程连接):
修改数据库的 pg_hba.conf 文件,给要远程连接的主机/用户放行(这里好像不能用 gs_auc 命令完成,直接编辑文件即可):
使用 gs_ctl 将策略生效:gs_ctl reload -D ./data/single_node
修改 postgresql.conf 中的监听地址:listen_addresses = '*',默认只监听 local,改后包括了要进行远程连接的 ip 地址就行
重启数据库生效:gs_ctl restart -D ./data/single_node
如果之后进行 JDBC 连接的时候出现如下图中的目标地址拒绝连接的异常,可能就是这一步出问题了
ODBC/JDBC
根据文档 JDBC 应该是都支持,ODBC 支持受限
因为是在 CentOS 7.6 上装的 openGauss,所以选择 JDBC。
JDBC Connectors 可以不用从源码构建,直接从官网下载页下载即可。
在 Win 上 VSCode 中配置好 JAVA 环境,需要 Java11 和 Java8,配置该项目的 JDK Runtime 和 Referenced Libraries(把下载解压得到的 postgresql.jar 加进去)
代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.Properties;
class openGaussTest {
public static void main(String[] args) {
System.out.println("=START TEST=");
Connection conn = getConnect("luooofan", "Luooofan1");
Statement stmt = null;
try {
stmt = conn.createStatement();
ResultSet rs = null;
try {
rs = stmt.executeQuery(
"select pro_c_id, pro_id, pro_status, pro_quantity, pro_income, pro_purchase_time from property;");
while (rs.next()) {
int pro_c_id = rs.getInt(1);
int pro_id = rs.getInt(2);
String pro_status = rs.getString(3);
int pro_quantity = rs.getInt(4);
int pro_income = rs.getInt(5);
Timestamp pro_pruchase_time = rs.getTimestamp("pro_purchase_time");
System.out.printf("%4d %4d %4s %4d %4d ", pro_c_id, pro_id, pro_status, pro_quantity, pro_income);
System.out.println(pro_pruchase_time);
}
} catch (SQLException e) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
}
stmt.close();
} catch (SQLException e) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static Connection getConnect(String username, String passwd) {
// 驱动类
String driver = "org.postgresql.Driver";
// 数据库连接描述符
String sourceURL = "jdbc:postgresql://...:5432/finance";
Connection conn = null;
try {
// 加载驱动
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
return null;
}
try {
// 创建连接
conn = DriverManager.getConnection(sourceURL, username, passwd);
System.out.println("Connection succeed!");
} catch (Exception e) {
e.printStackTrace();
return null;
}
return conn;
}
}
NOTE:
要执行什么操作就要赋予用户什么权限,代码中要对 property 表查询,故:grant select on table property to luooofan;
因为 CentOS 没配置中文编码,所以直接在 CentOS 上查找的话应该无法显示中文,不过这并不影响在 win 上远程连接然后查询并显示
References
openGauss Server&Connectors Official Download
官方文档-快速入门
官方文档-开发者指南
openGauss 数据库部署 Linux 遇到的问题
【数据库原理实验(openGauss)】 使用 JDBC 连接数据库
openGauss数据库的安装与使用的更多相关文章
- 实践录丨如何在鲲鹏服务器OpenEuler操作系统中快速部署OpenGauss数据库
本文适合需要快速了解OpenGauss基本使用和操作的单机用户,可以短时间内完成安装体验.对于企业级生产使用或者需要部署多台服务器的,不适合本文. 因为业务需要,要在鲲鹏架构里安装单机版的OpenGa ...
- opengauss集群安装报错
DB_VERSION:opengauss 3.0.3 1.[GAUSS-51632] [GAUSS-51632] : Failed to do gs_sshexkey.Error: Please en ...
- [转] Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置
from: http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得 ...
- Linux学习之CentOS--CentOS6.4下Mysql数据库的安装与配置【转】
如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--C ...
- Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置
原文:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j ...
- SSD Cloud Hosting–Linode-Mysql数据库的安装与配置
接着上一篇的话题:SSD Cloud Hosting - Linode的配置和部署,搭建Java环境 8.Mysql数据库的安装与配置 安装 检查yum里边有没有mysql: yum list|gre ...
- .net远程连接oracle数据库不用安装oracle客户端
asp.net远程连接oracle数据库不用安装oracle客户端的方法下面是asp.net连接远程Oracle数据库服务器步骤: 1.asp.net连接oracle服务器需要添加Sytem.Data ...
- .net远程连接oracle数据库不用安装oracle客户端的方法
.net远程连接oracle数据库不用安装oracle客户端的方法步骤: 1.添加Sytem.Data.OracleClient命名空间. 2.连接时需要ConnectionString字符串,出现在 ...
- Linux学习之CentOS6下Mysql数据库的安装与配置
转自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j ...
- Linux CentOS6.4下Mysql数据库的安装与配置
一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库,咱 ...
随机推荐
- Jenkins+maven+svn+tomcat持续集成环境
前言 团队最近要把项目发布的工作拿过来,所以需要一个持续集成发布系统 直接上步骤. 下载 http://mirrors.jenkins-ci.org/war/latest/ 直接下载war包,我下载的 ...
- 有n步台阶,一次只能上1步或2步,共有多少种走法
循环迭代: 1 public class steps { 2 public int js(int n) { 3 int one = 2; //初始化为第三级台阶最后跨一步的走法 4 int two ...
- MySQL汇总数和分组数据
1.使用SQL语句对数据库表中的数据进行简单的汇总和分组,这里要注意 count(*) 是对表中的所有数据目进行计数,不管表列中包含的是空值还是非空值. 而使用count(column)是对特定的列中 ...
- 手撕fft系列之频移fftshift源码解析
壹: fft在数字信号处理领域是一个神一样的存在.要好好熟悉一下.这里给出频移的算法源码解析. 所谓的频移,就是把数字信号的频频顺序打乱,移动一些.这个在防止啸叫和辅听领域应用十分广泛. 贰: 这个源 ...
- spring mvc 给action添加事务不成功的原因
spring springMVC ation事务管理 自己单独做了个小网站 但是发现action事务不起作用了 但是如果用service层就没问题 找了很多办法没解决 最后自己解决了 其实就是一个加载 ...
- C++多态底层原理:虚函数表
虚函数表 C++ 对象模型 在有虚函数的情况下,C++对象的模型可以概括为:虚函数表指针+数据struct.在对象所在的内存里:前8个字节(64位系统)是虚函数表所在地址,后边是对象中的member ...
- 关于linux在笔记本下耗电的解决方案(只写我实践的部分)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文发布于 2014-09-22 12:02:54 ...
- [noip2015]运输计划(LCA,二分)
运输计划[做题笔记] 挺难绷的... 题意 概括:给定 \(n\) 个节点的树和 \(n-1\) 条边的权值,现在可以将一条边的权值改为 \(0\) .找出一条边,使得将这条边权值赋为 \(0\) 时 ...
- Linux 运维工程师面试真题-1-必会Linux 操作系统知识
Linux 运维工程师面试真题-1-必会Linux 操作系统知识 运维的整个面试流程其实是非常繁杂的,为了方便大家准备,我们特地在这里给大家整理了 一些 Linux 系统运维相关的面试题,有些问题没有 ...
- 什么是3D可视化,为什么要使用3D可视化
虽然许多设计师听说过为什么设计的可视化在他们的审批过程中是有益的,但并不是每个人都知道3D可视化到底是什么. 3D可视化与3D图形.3D渲染.计算机生成图像和其他术语同义使用.3D可视化是指使用计算机 ...