opengauss高斯数据库

openGauss是一款企业级开源关系型数据库,由华为公司推出。它深度融合了华为多年的数据库领域经验,充分结合企业级场景需求,基于openGauss自研生态而打造。
在架构上,openGauss着重于传统数据库的企业级能力和互联网分布式数据库的高扩展和高可用能力。具体来说,openGauss能够提供高性能、高可用、高拓展和易运维等特性。支持分布式事务强一致性,并在32节点下能够达到1200万tpmC的性能实测指标;同时支持同城跨AZ多活容灾,两地三中心金融级部署场景。此外,openGauss还具有高度的易用性和可扩展性,当前最大支持256节点的在线扩容。
openGauss采用木兰宽松许可证v2发行,使用面向多核架构的极致性能,可以提供全链路的业务、数据安全、基于AI的调优和高效运维的能力。它支持单机和一主多备部署方式,同时支持备机可读、双机高可用等特性。此外,openGauss还具备标准SQL的支持,包括SQL92/SQL99/SQL2003等,以及支持SQL2011大部分的核心特性。
总的来说,openGauss是一款功能强大、性能优秀的关系型数据库管理系统,适用于各种规模和类型的企业应用,尤其是那些需要处理大量数据并要求高并发、高可用性和高扩展性的应用场景。

docker安装opengauss高斯数据库

拉取镜像
docker pull enmotech/opengauss:latest

启动容器
docker run --name opengauss \
--privileged=true -d \
-e GS_PASSWORD=Chen@1234 \
-v /data/opengauss/data:/var/lib/opengauss -p 15432:5432 enmotech/opengauss


进入容器修改配置文件允许远程登录

修改postgresql.conf文件
vi /var/lib/opengauss/data/postgresql.conf
#listen_addresses = 'localhost'         # what IP address(es) to listen on;
listen_addresses = '*'

修改pg_hba.conf文件:
vi /var/lib/opengauss/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             0.0.0.0/0               sha256

进入容器
docker exec -it opengauss /bin/bash
切换用户
su - omm
进入数据库
gsql

创建用户
CREATE USER test_cc PASSWORD ‘Chen@1234’;
GRANT ALL PRIVILEGES TO test_cc ;
退出数据库
退出容器后重启容器

opengauss数据库连接信息

opengauss端口15432
数据库opengauss
账号和密码test_cc\Chen@1234

opengauss数据库添加一个名为gauss_user,密码为Test_1234的用户并授权管理员权限

创建一个名为gauss_user的用户并设置密码为Test_1234
CREATE USER gauss_user WITH PASSWORD 'Test_1234';

授权管理员权限给gauss_user用户
GRANT ALL PRIVILEGES ON DATABASE opengauss TO gauss_user;

opengauss数据库,创建students数据表,创建100万条数据

opengauss数据库创建一个名为students的数据表,包含以下字段:id、name、email、phone、gender、password、age、create_time、update_time。然后,我们将插入1000000条数据

-- 创建students数据表
CREATE TABLE students (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL UNIQUE,
    phone VARCHAR(20),
    gender CHAR(1),
    password VARCHAR(255) NOT NULL,
    age INT,
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 插入1000000条数据
DO $$
DECLARE
    i INTEGER := 0;
BEGIN
    LOOP
        INSERT INTO students (name, email, phone, gender, password, age)
        VALUES ('学生' || i, 'student' || i || '@example.com', '13800138000' || i, 'M', 'password' || i, FLOOR(RANDOM() * 100));
        i := i + 1;
        IF i >= 1000000 THEN
            EXIT;
        END IF;
    END LOOP;
END $$;