华为云便捷部署openGauss
实验采用的是openGauss v2.1.0 极简版和CentOS 7.6。
建议阅读华为官方文档:openGauss v2.1使用手册 ->安装指南 / 管理员指南
安装流程
搭建华为云服务器
- 安装环境要求:使用openEuler或CentOS 7.6
# 配置弹性云服务器ECS-->按需计费-->公共镜像-->CentOS7.6-->
# 选择默认私有云-->选择默认安全组-->设置root用户登陆密码,其余选项默认即可。
# 配置好后,即可用CloudShell登录root用户。
登陆成功页面:
- 修改操作系统配置
在正式安装数据库前,先关闭云服务器防火墙;并且需要将同openGauss相关的服务、协议、IP以及端口添加到openGauss主机的防火墙白名单中。
- 检查系统防火墙是否关闭。若防火墙状态显示为inactive (dead),则无需再关闭防火墙:
systemctl status firewalld
- 云服务器安全组增加规则
在“入方向”规则增加TCP协议、源IP为所有、端口为5432或者26000的一条规则即可。这个端口号只要与后边登录数据库时使用的端口保持一致即可。我采用的是5432,也就是openGauss运行的默认端口:
所谓安全组,就是用户为实例定义的各种白名单访问规则, 简要说明如下:
- 入方向规则:入方向指外部访问安全组内的实例的指定端口。当外部请求匹配上安全组中入方向规则的源地址,并且策略为“允许”时,允许该请求进入,其他请求一律拦截。
- 出方向规则:出方向指安全组内的实例访问外部的指定端口。在出方向中配置目的地址匹配所有IP地址的规则,并且策略为“允许”时,允许所有的内部请求出去。
- 0.0.0.0/0表示匹配所有IPv4地址。
- 登录后开启防火墙、开放指定的数据库运行端口5432
systemctl start firewalld
systemctl status firewalld
firewall-cmd –add-port=5432/tcp –permanent
firewall-cmd --reload
安装配置openGauss
- 创建普通用户u1,并为/opt开放读写及执行权限
[root@opengauss ~]# sudo useradd u1
[root@opengauss ~]# sudo passwd u1
Changing password for user u1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@opengauss ~]# chmod -R 777 /opt
[root@opengauss ~]#
- 在root用户下,修改系统配置
- 修改Linux内核参数,用来控制信号量Semaphore,深入理解kernel.sem
[root@opengauss ~]# sysctl -w kernel.sem="250 85000 250 330"
kernel.sem = 250 85000 250 330
- 修改配置文件
打开limits.conf文件:
vi /etc/security/limits.conf
在末尾插入以下两行:
(vi常用操作:i键进入修改模式、ESC退回命令行模式、:wq存盘并退出)
u1 hard nofile 1000000
u1 soft nofile 1000000
设置内存分配参数:
sysctl -w vm.overcommit_memory=1
- 执行完上述步骤之后,后面在安装数据库时可能会失败,如果有libaio.so报错:
对应的解决方案是安装依赖,同样在root用户下(也可以等后面遇到了再执行):
yum install libaio
- 新建终端,检查u1用户是否可以正常登录
正式安装
- 在u1用户下,命令行方式下载openGauss,我使用的版本是v 2.1
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.1.0/x86/openGauss-2.1.0-CentOS-64bit.tar.bz2
- 将压缩包移动到/opt目录下
mv openGauss-2.1.0-CentOS-64bit.tar.bz2 /opt
- 创建openGauss文件夹并进入目录
mkdir /opt/openGauss
cd /opt/openGauss
- 在/opt/openGauss目录下解压
tar -jxf /opt/openGauss-2.1.0-CentOS-64bit.tar.bz2 -C /opt/openGauss
- 执行安装(将yourpassword@替换为你的用户密码)
sh simpleInstall/install.sh -w yourpwd123@ &&source ~/.bashrc
- 出现提示 server started,就是成功了
数据库登陆
- 在u1用户下,此时可以直接登陆默认数据库:
gsql -d postgres -p 5432 -r
- 而如果是在数据库关闭后登录,则需要先启动数据库实例:
(注意,因为下载的是极简版,没有gs_om命令,但是可以用gs_ctl,这与网上的一些博客有所不同,但不影响后续实验)
gs_ctl start -D $GAUSSHOME/data/single_node -Z single_node
创建、登录数据库用户
- 创建具有管理员权限的数据库用户u1:
create user u1 with sysadmin identified by 'yourpwd123@';
- 以创建的用户u1登录数据库,需要密码,-r 表示进入之后可编辑操作语句:
gsql -d postgres -p 5432 -U u1 -r
- 如需退出数库登录
\q
创建数据库
- 创建数据库MYDB,指定数据库所有者:
create database MYDB with owner u1;
- 查看数据库系统所有的数据库:
\l
- 切换到指定数据库:
\c MYDB
创建基本表
- 创建学生、课程、选课三张表(S、C、SC)
create table S
(
sno VARCHAR(10) NOT NULL,
sname VARCHAR(20) NOT NULL,
sex CHAR(4) NOT NULL,
bdate DATE NOT NULL,
height DEC(3,2) DEFAULT 0.00,
dorm VARCHAR(20),
primary KEY(sno)
);
create table C
(
cno VARCHAR(10) NOT NULL,
cname VARCHAR(40) NOT NULL,
period SMALLINT NOT NULL,
credit TINYINT NOT NULL,
teacher VARCHAR(20) NOT NULL,
primary KEY(cno)
);
create table SC
(
sno VARCHAR(10) NOT NULL,
cno VARCHAR(10) NOT NULL,
grade DEC(4,1) DEFAULT NULL,
primary KEY(sno,cno),
FOREIGN KEY (sno) REFERENCES S648(sno) ON DELETE CASCADE,
FOREIGN KEY (cno) REFERENCES C648(cno) ON DELETE CASCADE,
CHECK((grade IS NULL) or (grade BETWEEN 0 AND 100))
);
- 查看数据库中创建的基本表
\d
到此,数据库创建完毕。用Navicat 远程连接数据库 和 课内实验报告 请参考我的下一篇博客。