从0开始华为云搭建openGauss数据库(极简版2.1.0)

背景和目标

由于本人电脑空间所剩无几,上面又有使用openGauss数据库的要求,为此在华为云上面搭建一台云服务器,实现下面目标:

  1. 安装openGauss数据库(极简版2.1.0)
  2. 创建用户,登openGauss数据库,创建数据库sc(教务管理),实际上是老生常谈的一个典型的模范数据库了
  3. 通过Data Studio(华为提供的连接高斯数据库的图形化界面)本地连接openGauss数据库

部署和实施

熟悉安装流程

  1. 安装环境要求 ,关键是软件安装环境要求
    在这里插入图片描述
    因此本次部署将采用Centos 7.6作为操作系统
  2. 在正式安装前,先关闭防火墙,Centos是默认关闭的,因此不需要进行操作

搭建云服务器,配置公网IP

说明:

  1. 该任务在华为官方都有详细的文档,按照上面来完全没问题,但是需要注意好多服务都是收费的,有包月,有按需计费,在购买前要确认好
  1. 创建华为云账号以后,单击 控制台,进入到服务页面

重点提一下,控制台顾名思义很重要,很多服务的入口都可以在控制台上找到

  1. 如下
    在这里插入图片描述
  2. 进入到 弹性云服务器界面,点击 购买弹性云服务器,来到 配置界面,在这里可以完成云服务器的基本配置
    在这里插入图片描述
    在这里插入图片描述
  3. 配置 网络配置
    在这里插入图片描述

关于虚拟私有云安全组

  1. 私有云就是你服务存在的地方,各个私有云之间彼此隔离,需要人为配置才能通信,一个私有云下面可以有多种服务
  2. 安全组就是设置允许谁(ip地址或ip地址块)以哪种协议(tcp,icmp,ssh)访问服务的哪个端口,通常是有默认的配置的,选择默认的即可,在后面我人为的配置了一个
  1. 高级配置
    在这里插入图片描述

  2. 确认配置即可

  3. 点击控制台,来到我的资源 下,点击购买的云服务器,来到 服务器信息列表,在这里可以查看服务器的状态等
    在这里插入图片描述
    在这里插入图片描述

  4. 配置安全组,开放指定的端口
    在这里插入图片描述
    点击 安全组,点击配置规则,配置如下内容,最后确认
    在这里插入图片描述

  5. 点击 远程登录,选择 CloudShell登录
    在这里插入图片描述
    下面这样就是成功:
    在这里插入图片描述

  6. 开启防火墙,开放指定的端口5432,openGauss运行的默认端口

systemctl start firewalld

systemctl status firewalld

firewall-cmd –add-port=5432/tcp –permanent

firewall-cmd --reload
  1. 使用putty或者xshell或者winscp本地登录,大概的方式都是一样,其中最后一个提供图形化界面,方便文件的上传到云服务器,这里使用xshell。点击 文件新建会话
    在这里插入图片描述
    点击 用户身份验证,设置密码,这样就可以避免每次登录都要输入密码
    在这里插入图片描述
  2. 第一次登录,会提示相关信息,接受即可
    在这里插入图片描述

安装前准备

1, 下载地址
2. 选择版本
在这里插入图片描述
3. 创建用户sun

[root@opengauss ~]# sudo useradd sun
[root@opengauss ~]# sudo passwd sun
Changing password for user sun.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@opengauss ~]# chmod -R 777 /opt
[root@opengauss ~]# 

说明:

  1. 前两句创建用户,并且设置密码,在输入密码的时候,密码不会显示在命令行上,是你看不见而已,正常输入即可
  2. 最后一句授予权限,将来的openGauss将安装在/opt目录下
  1. 新建终端,以sun用户登录系统
    在这里插入图片描述
  2. 在root用户下执行如下命令(下面这些都是泪的教训)一共执行三条,分开执行
1.   sysctl -w kernel.sem="250 85000 250 330"

2.   vi /etc/security/limits.conf

在文件末尾加入如下配置:
sun hard nofile 1000000
sun soft nofile 1000000

3.   sysctl -w vm.overcommit_memory=1

正式安装(包括问题+解决方案)

  1. 在linux命令行运行如下命令,默认下载2.1.0版本
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.1.0/x86/openGauss-2.1.0-CentOS-64bit.tar.bz2
  1. 移动到/opt目录下
mv openGauss-2.1.0-CentOS-64bit.tar.bz2 /opt
  1. 创建文件夹openGauss
mkdir /opt/openGauss
cd /opt/openGauss
  1. 解压文件到/opt/openGauss目录下
tar -jxf /opt/openGauss-2.1.0-CentOS-64bit.tar.bz2 -C /opt/openGauss
  1. 执行安装命令,-w后面为初始登录数据库的密码
sh simpleInstall/install.sh  -w  123456su@ &&source ~/.bashrc

报错

在这里插入图片描述
在root账号下执行命令:

 sysctl -w kernel.sem="250 85000 250 330"

再次回到sun用户执行命令9,发现还是失败,有如下报错:
报错
在这里插入图片描述

在网上查找信息,发现是因为系统分配给sun用户的空间太小了,.bashrc中分配的空间的大小,大于全局配置文件/etc/security/limits.conf,于是我又去修改该文件,在文件末尾加入如下配置:
sun hard nofile 1000000
sun soft nofile 1000000

  1. 使用root账户修改配置文件
vi /etc/security/limits.conf

在这里插入图片描述

vi编辑器对于新手而言简直就是噩梦,这里只介绍简单的命令

  1. i 编辑修改
  2. 按下 Esc键,输入:wq退出编辑
  3. / string 快速查找string
  1. 回到sun用户加载配置文件,不报错就行
 source ~/.bashrc
  1. 再次执行9命令
[sun@opengauss openGauss]$ sh simpleInstall/install.sh  -w  123456su@ &&source ~/.bashrc
[step 1]: check parameter
[step 2]: check install env and os setting
ERROR: the directory /opt/openGauss/data/single_node must be dir and empty
[sun@opengauss openGauss]$ rm -rf data
[sun@opengauss openGauss]$ sh simpleInstall/install.sh  -w  123456su@ &&source ~/.bashrc

报错
在这里插入图片描述

在网上找,有说是内存不够的,有说是超过当前用户所分配的最大内存,但不管怎样,继续分配内存就可以了,在root用户下运行命令
sysctl -w vm.overcommit_memory=1

  1. 在root用户下运行命令
sysctl -w vm.overcommit_memory=1
  1. 再次运行9,登录成功
[sun@opengauss openGauss]$ rm -rf data
[sun@opengauss openGauss]$ sh simpleInstall/install.sh  -w  123456su@ &&source ~/.bashrc

在这里插入图片描述

登陆

  1. 登录默认数据库
gsql -d postgres -p 5432 -r

在这里插入图片描述

创建数据库用户moon

create user moon with sysadmin identified by '123456ll@';

创建数据库sc

create database sc with owner moon;

接下来简单描述一下数据库sc,教务系统数据库中包含如下信息

创建student表
字段名 代码 类型 约束
学号 s_no char(8) 主键
姓名 sname char(8) 非空
性别 sex char(2)
出生日期 sbirthday Smalldatetime
学生所在院系编号 dno char(6) 外键
专业代码 spno char(8) 外键
班级编码 class_no char(4) 外键

创建Course表
字段名 代码 类型 约束
课程编号 cno char(10) 主键
课程名称 cname char(20) 非空
专业代码 spno char(8) 外键
课程类型编号 ctno tinyint
理论学时 lecture tinyint
实验学时 experiment tinyint
开课学期 semester tinyint
课程学分 credit tinyint

创建student _course表
字段名 代码 类型 约束
学号 s_no char(8) 主键,与student表中s_no 外键关联,级联删除
上课编号 tcid smallint 主键
学生成绩 score tinyint

创建teacher表
字段名 代码 类型 约束
教师编号 t_no char(8) 主键
教师姓名 t_name char(8) 非空
性别 t_sex char(2)
出生日期 t_birthday smalldatetime
教师所在院系编号 dno char(6) 外键
职称 tech_title char(10)

创建系部表(department)
字段名 代码 类型 约束
院系编号 dno char(6) 主键
院系名称 dept_name char(20) 非空
院系负责人 header char(8)

创建专业信息表(speciality)
字段名 代码 类型 约束
专业代码 spno char(8) 主键
院系编号 dno char(6) 外键,非空
专业名称 spname char(20) 非空

创建teacher_course表
字段名 代码 类型 约束
上课编号 tcid smallint 主键
教师编号 t_no char(8) 外键
专业代码 spno char(8) 外键
班级编码 class_no char(4)
课程编号 cno char(10) 非空,外键
学期 semester Char(6)
学年 schoolyear Char(10)

创建班级表(class)
字段名 代码 类型 约束
专业代码 spno char(8) 主键,与 speciality 表中spno 外键关联,
班级编码 class_no char(4) 主键,
班负责人 header char(8)

使用moon账号登录

  1. 首先退出数据库
\q
  1. 登录
 gsql -d sc -p 5432 -U moon -W 123456ll@

直接给出sql语句(复制粘贴)

create table department
(
    dno char(6) PRIMARY key,
    dept_name CHAR(20) not null,
    header CHAR(8)
);

create table specillity
(

    spno char(8) primary key,
    dno char(6) not null,
    spname char(20) not null,
    foreign key (dno) REFERENCES department(dno)
);

CREATE TABLE teacher
(
    t_no CHAR(8) PRIMARY KEY,
    t_name CHAR(8) NOT NULL,
    t_sex char(2),
    t_birthday date,
    dno CHAR(6),
    teach_title CHAR(10),
    foreign KEY(dno) REFERENCES department(dno)
);

CREATE TABLE class
(

    spno CHAR(8),
    class_no CHAR(4),
    header CHAR(8),
    PRIMARY KEY(spno,class_no),
    foreign KEY(spno) REFERENCES specillity(spno)
);

create table course
(
    cno CHAR(10) PRIMARY KEY,
    cname CHAR(20),
    spno CHAR(8),
    ctno TINYINT,
    lecture TINYINT,
    experiment TINYINT,
    semester TINYINT,
    credit TINYINT,
    foreign KEY(spno) REFERENCES specillity(spno)
);

create table student
(
    s_no CHAR(8) PRIMARY KEY,
    sname CHAR(8) NOT NULL,
    sex CHAR(2),
    sbirthday DATE,
    dno CHAR(6),
    spno CHAR(8),
    class_no CHAR(4),
    foreign KEY(dno) REFERENCES department(dno),
    foreign KEY(spno) REFERENCES specillity(spno)
);

create TABLE student_course
(
    s_no CHAR(8),
    tcid TINYINT,
    score TINYINT,
    primary KEY(s_no,tcid),
    FOREIGN KEY (s_no) REFERENCES student(s_no)
    ON
    DELETE CASCADE
);

create TABLE teacher_course
(
    tcid SMALLINT primary key,
    t_no CHAR(8),
    spno CHAR(8),
    class_no CHAR(4),
    cno CHAR(10) NOT NULL,
    semester CHAR(6),
    schoolyear CHAR(10),
    foreign KEY(spno) REFERENCES specillity(spno),
    FOREIGN KEY(t_no) REFERENCES teacher(t_no),
    FOREIGN KEY(cno) REFERENCES course(cno)
);

查看所创建的表

\d

在这里插入图片描述
到此创建完毕

通过Data Studio连接

记住我们前面创建的用户信息
账号:moon
密码:123456ll@

  1. 修改配置文件,开放权限,这里我们使用winscp登录,方便修改,其登录和xshell大同小异,进入到/opt/openGauss/data/single_node目录下,找到下面的文件
    在这里插入图片描述

  2. 修改pg_hba.conf文件,增加其他远程访问连接的许可

host   all    moon      0.0.0.0/0       sha256

在这里插入图片描述
3. 修改postgresql.conf文件,关闭SSL,增加要访问的端口号
在这里插入图片描述
在这里插入图片描述
4. 查看修改是否生效

openGauss=# \q
[sun@opengauss openGauss]$ cat data/single_node/postgresql.conf|grep ssl
ssl = off                               # (change requires restart)
#ssl_ciphers = 'ALL'                    # allowed SSL ciphers
#ssl_cert_notify_time = 90              # 7-180 days
#ssl_renegotiation_limit = 0            # amount of data between renegotiations, no longer supported
#ssl_cert_file = 'server.crt'           # (change requires restart)
#ssl_key_file = 'server.key'            # (change requires restart)
#ssl_ca_file = ''                       # (change requires restart)
#ssl_crl_file = ''                      # (change requires restart)
#elastic_search_ip_addr = 'https://127.0.0.1' # what elastic search ip is, change https to http when elastic search is non-ssl mode
[sun@opengauss openGauss]$ cat data/single_node/postgresql.conf|grep listen
listen_addresses = '*'          # what IP address(es) to  on;
[sun@opengauss openGauss]$ 
  1. 重启数据库
gs_ctl restarted ,datadir is /opt/openGauss/data/single_node
  1. 在自己电脑下载Data Studio,傻瓜式的安装Data Studio
    在这里插入图片描述
  2. 在自己电脑确保自己安装了jdk,且jdk的版本只能是1.8,下载的链接jdk-1.8,新建cmd窗口
C:\Users\sun>java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

  1. 用Data Studio连接,执行 DataStudio.exe文件
    在这里插入图片描述

在这里插入图片描述
成功!

反思和总结

  1. 安装软件永远编程的第一步,安装软件的过程中会遇到各种问题以这次安装为例,主要是如下
    (1)版本不兼容,软件版本和操作系统版本不匹配
    (2)命令找不到,通常是没有配置环境变量,同时每个用户都有自己独立的环境 变量,需要注意区分
    (3)进程错误,进程异常的终止
    (4)权限不足
    (5)分配的资源不足
  2. 就在刚刚,克罗地亚1:1日本,老实说,我是支持克罗地亚的
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值