openGauss安装和使用
操作系统:
CentOS7.8
关闭防火墙
#修改配置 vim /etc/selinux/config SELINUX=disabled #重启操作系统 reboot #检查关闭防火墙 systemctl status firewalld #关闭防火墙 systemctl disable firewalld.service systemctl stop firewalld.service
设置字符集
vim /etc/profile #设置为utf-8 export LANG=en_US.UTF-8
关闭selinux
#查看SELINUX状态: #SELinux共有3个状态enforcing (执行中)、permissive (不执行但产生警告)、disabled(关闭) getenforce #临时关闭(重启机器后失效) #setenforce 0设置为permissive模式;setenforce 1 设置为enforcing模式; setenforce 0 #永久关闭(需要重启机器)root用户执行 #注意:配置修改后需要重启才能生效 sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config
创建用户组和普通用户
必须创建新的用户,opengauss不能用root安装
#创建用户组dbgroup。 groupadd omm #创建用户组dbgroup下的普通用户omm,并设置密码为Gauss_234 。 useradd -g omm omm passwd omm #Gauss@5432 #使用root用户执行 sysctl -w kernel.sem="250 85000 250 330" #切换用户omm su - omm
下载安装包
https://opengauss.org/zh/download/
选择极简版下载:
openGauss-5.0.2-CentOS-64bit.tar.bz2
解压安装包
检查安装目录及文件是否齐全。在安装包所在目录执行以下命令:
mkdir -p /home/omm/openGauss #解压压缩包 tar -jxf openGauss-5.0.2-CentOS-64bit.tar.bz2 -C /home/omm/openGauss
使用脚本安装
默认用户名:omm
omm密码指定为:Gauss@5432
密码规则:密码长度8个字符以上,必须同时包含大写字母、小写字母、数字、以及特殊符号(特殊符号仅包含“#?!@$%^&*-”,并且“!$&”需要用转义符“\”进行转义)
#进入安装路径 cd /home/omm/openGauss/simpleInstall #运行安装脚本 sh install.sh -w "Gauss@5432" #install.sh 参数说明: -w:初始化数据库密码(gs_initdb指定),因安全需要,此项必须设置。 -p:指定openGauss端口号,如不指定,默认为5432。 -h | --help:打印使用说明。
测试使用
#客户端登录默认生成的数据库 postgres gsql -d postgres #查看当前所有数据库 \l
配置
配置远程登录:
修改pg_hba.conf
host all all 0.0.0.0/0 md5
修改postgresql.conf
监听所有地址
listen_address='*'
配置日志:
修改postgresql.conf
# 代表日志是开启的。 logging_collector = on # 日志存放的路径,默认放到当前目录下的log里 log_directory = 'log' # 日志的文件名,默认是postgresql为前缀,星期作为后缀 log_filename = 'postgresql-%a.log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # 默认一周过后,日志文件会被覆盖,只保留一周的日志 log_truncate_on_rotation = on # 一天一个日志文件 log_rotation_age = 1d # 一个日志文件,没有大小限制 log_rotation_size = 0
docker 安装
修改docker源
vim /etc/docker/daemon.json
{ "registry-mirrors": ["https://hub.uuuadc.top", "https://docker.anyhub.us.kg", "https://dockerhub.jobcher.com", "https://dockerhub.icu", "https://docker.ckyl.me", "https://docker.awsl9527.cn"] }
安装:
#重启docker sudo systemctl daemon-reload sudo systemctl restart docker docker info #拉取镜像 docker search gaussdb docker pull enmotech/opengauss #创建数据目录 mkdir /mydata/opengauss -p #创建容器:指定密码为 Gauss@1234 docker run -d --restart=always --name opengauss --privileged=true -d -e GS_PASSWORD=Gauss@1234 -p 5432:5432 -v /mydata/opengauss:/var/lib/opengauss enmotech/opengauss
测试使用
#客户端登录默认生成的数据库 postgres gsql -d postgres #查看当前所有数据库 \l
opengauss使用:
进入容器
docker exec -it opengauss bash su - omm gsql
远程登录
新建用户,初始用户omm不允许远程登录
-- 准备用户 create user test with password 'Test@1234'; -- 准备数据库 create database test; -- 切换数据库 \c test; -- 构建schema create schema test; -- 将schema的拥有者修改为test用户 alter schema test owner to test; -- 将test库下的test的schema中的表的增,改,查权限赋予给test用户 grant select,insert,update on all tables in schema test to test; -- 用postgres用户先构建一张表,schema为test下创建表test create table test.test(id int); -- 切换到test用户。 --\c test -test \c test test --插入测试数据 insert into test values(1); insert into test values(2);
java 使用 jdbc连接数据库
java项目使用jdbc方式连接openGauss数据库:
1.下载并加载驱动
从官网下载相应版本的驱动软件包
https://opengauss.org/zh/download/
下载 openGauss Connectors
选择 x86_64 -> Centos7.6 -> JDBC_5.0.2 点击下载
openGauss-5.0.2-JDBC.tar.gz
2 解压 openGauss-5.0.2-JDBC.tar.gz
将 opengauss-jdbc-5.0.2.jar 引入java项目中
3 测试代码
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Properties; public class JdbcConn { public static void main(String[] args) { testOpenGauss(); } public static void testOpenGauss() { // 数据库连接URL,格式为:jdbc:opengauss://主机名:端口/数据库名 String jdbcUrl = "jdbc:opengauss://192.168.56.28:5432/test"; // 数据库用户和密码 String username = "test"; String password = "Test@1234"; String driver = "org.opengauss.Driver"; try { // 加载JDBC驱动 Class.forName(driver); // 建立数据库连接 Connection connection = DriverManager.getConnection(jdbcUrl, username, password); // 创建Statement对象执行查询 Statement statement = connection.createStatement(); // 执行查询并获取结果 ResultSet resultSet = statement.executeQuery("SELECT * FROM test"); // 遍历结果集 while (resultSet.next()) { // 处理每一行结果,例如打印这里打印前面插入的数据 1, 2 System.out.println(resultSet.getString("id")); } // 关闭结果集、Statement和连接 resultSet.close(); statement.close(); connection.close(); } catch (Exception e) { e.printStackTrace(); } } }