实验项目名称 实验2 openGauss数据库开发调试工具
一、实验目的:
使用gsql数据库开发调试工具NAVICAT连接openGauss数据库。
二、实验内容及过程、结果
实验概览
步骤 2 使用“gs_om -t status --detail”命令查询openGauss各实例情况。
[omm@db1 ~]$ gs_om -t status --detail
在步骤2查到的数据库主节点数据路径下的postgresql.conf文件中查看端口号信息。示例如下:
[omm@db1 ~]$ cat /gaussdb/data/db1/postgresql.conf | grep port
结果显示如下:
连接本地数据库
步骤 3 连接数据库。
执行如下命令连接数据库。
[omm@db1 ~]$ gsql -d postgres -p 26000 –r
创建文件夹存放相关文档。
mkdir /home/omm/openGauss
创建文件,例如文件名为“mysql.sql”,并写入可执行sql语句“select * from pg_user;”。
vi /home/omm/openGauss/mysql.sql
文件打开输入i,进入INSERT模式,输入” select * from pg_user;”。
select * from pg_user;
然后点击ESC,输入“:wq”保存文档并退出。
执行如下命令使用文件作为命令源。
gsql -d postgres -p 26000 -f /home/omm/openGauss/mysql.sql
结果如下,并且gsql将在处理完文件后结束:
列出所有可用的数据库(\l的l表示list)
gsql -d postgres -p 26000 -l
结果如下,并且gsql将在显示后结束:
设置gsql变量NAME为VALUE
设置foo的值为bar。
gsql -d postgres -p 26000 -v foo=bar
在数据库能够显示foo的值。
postgres=# \echo :foo
bar
打印gsql版本信息。
gsql -V
结果如下,并且gsql将在显示后结束:
使用文件作为输出源
创建文件,例如文件名为“output.txt”。
touch /home/omm/openGauss/output.txt
执行如下命令,除了正常的输出源之外,把所有查询输出记录到文件中。
gsql -d postgres -p 26000 -L /home/omm/openGauss/output.txt
查看“output.txt”文档中的内容如下:
cat /home/omm/openGauss/output.txt
显示如下:
将所有查询输出重定向到文件FILENAME
创建文件,例如文件名为“outputOnly.txt”。
touch /home/omm/openGauss/outputOnly.txt
执行如下命令。
gsql -d postgres -p 26000 -o /home/omm/openGauss/outputOnly.txt
进入gsql环境,输入以下语句:
postgres=# drop table mytable;
postgres=# create table mytable (firstcol int);
postgres=# insert into mytable values(100);
postgres=# select * from mytable;
postgres=# \q
所有操作都没有回显。
查看“outputOnly.txt”文档中的内容如下:
cat /home/omm/openGauss/outputOnly.txt
显示如下:
安静模式
安静模式:执行时不会打印出额外信息
gsql -d postgres -p 26000 -q
进入gsql环境,输入以下语句:
postgres=# create table t_test (firstcol int);
postgres=# insert into t_test values(200);
postgres=# select * from t_test;
连接上数据库,创建数据库和插入数据等都没有回显信息。
单行运行模式
单行运行模式:这时每个命令都将由换行符结束,像分号那样
gsql -d postgres -p 26000 -S
进入gsql环境,输入以下语句:
postgres^# select * from t_test;
postgres^# select * from t_test
postgres=# \q
语句最后结尾有;号和没有;号,效果都一样。
编辑模式
如下命令连接数据库,开启在客户端操作中可以进行编辑的模式。
gsql -d postgres -p 26000 -r
进入gsql环境,输入以下语句:
写完后不要按回车,光标在最后闪烁。
按“向左”键讲光标移动到“”,将“”修改为“firstcol”。
编辑模式“上下左右键”,“删除键”和“退格键”都可以使用,并且按下“向上”、“向下”键可以切换输入过的命令。
gsql元命令使用
前提条件
以下操作在openGauss的数据库主节点所在主机上执行(本地连接数据库),使用gsql连接到openGauss数据库。
切换到omm用户,以操作系统用户omm登录数据库主节点。
su - omm
gsql连接数据库。
gsql -d postgres -p 26000 -r
打印当前查询缓冲区到标准输出
创建“outputSQL.txt”文件。
touch /home/omm/openGauss/outputSQL.txt
连接数据库。
gsql -d postgres -p 26000 -r
输入以下语句。
postgres=# select * from pg_roles;
postgres=# \w /home/omm/openGauss/outputSQL.txt
postgres=# \q
打开文件“outputSQL.txt”文件,查看其中内容。
cat /home/omm/openGauss/outputSQL.txt
select * from pg_roles;
导入数据
连接数据库。
gsql -d postgres -p 26000 -r
创建目标表a。
postgres=# CREATE TABLE a(a int);
导入数据,从stdin拷贝数据到目标表a。
postgres=# \copy a from stdin;
出现>>符号提示时,输入数据,输入.时结束。
查询导入目标表a的数据。
postgres=# SELECT * FROM a;
查询表空间
postgres=# \db
查询表的属性。
创建表customer_t1。
postgres=# DROP TABLE IF EXISTS customer_t1;
postgres=# CREATE TABLE customer_t1
(
c_customer_sk integer,
c_customer_id char(5),
c_first_name char(6),
c_last_name char(8)
);
查询表的属性。
postgres=# \d+;
显示如下:
查询表customer_t1的属性。
postgres=# \d+ customer_t1;
查询索引信息
在表customer_t1上创建索引。
create index customer_t1_index1 on customer_t1(c_customer_id);
查询索引信息。
postgres=# \di+;
显示如下:
查询customer_t1_index1索引的信息。
postgres=# \di+ customer_t1_index1
显示如下:
连接Navicat
步骤 1 修改数据库的pg_hba.conf文件。
在GS_HOME中查找pg_hba.conf文件,本实验中数据库GS_HOME设置的为/gaussdb/data/db1,实际操作中GS_HOME地址可以查看安装时的配置文件:。
[root@db1 ~]# cd /gaussdb/data/db1
[root@ecs-b5cb db1]# vi pg_hba.conf
将以下内容添加进pg_hba.conf文件。
host all all 0.0.0.0/0 md5
切换至omm用户环境,使用gs_ctl将策略生效。
[root@db1 db1]#su - omm
[omm@db1 ~]$gs_ctl reload -D /gaussdb/data/db1/
步骤 2 登陆数据库并创建“dboper”用户,密码为“dboper@123”(密码可自定义),同时进行授权,并退出数据库。
[omm@db1 ~]$gsql -d postgres -p 26000 -r
postgres=#CREATE USER dboper IDENTIFIED BY 'dboper@123';
postgres=#alter user dboper sysadmin;
postgres=# \q
退出OMM用户环境
[omm@ecs-b5cb ~]$ exit
[root@ecs-b5cb ecs-b5cb]#
步骤 3 修改数据库监听地址。
在GS_HOME中,本实验中数据库GS_HOME设置的为/gaussdb/data/db1。
[root@ecs-b5cb ecs-b5cb]# cd /gaussdb/data/db1
[root@db1 ~]# vi postgresql.conf
将listen_addresses的值修改成为 * 。
listen_addresses = '*'
修改完成后切换至OMM用户环境重启数据库生效(-D后面的数据库默认路径,需要根据实际情况进行修改)。
[root@db1 db1]#su - omm
[omm@db1 ~]$gs_ctl restart -D /gaussdb/data/db1/
确定26000端口是否放开
修改用户名为joe的用户密码,这里注意新旧密码不能相同,否则不能修改成功,也不能改为之前用过的密码。
OS进行相应设置,开放26000端口
上述允许远程连接的设置仅是postgre的设置,真正要让外部可连接,OS层也要设置,即开启相应端口,故开启26000端口即可:
三、实验中遇到的问题及分析讨论
发生错误,暂时无法解决
四、实验结论
查看帮助信息:
postgres=# \?
切换数据库:
postgres=# \c dbname
列举数据库:
使用\l元命令查看数据库系统的数据库列表。
postgres=# \l
使用如下命令通过系统表pg_database查询数据库列表。
postgres=# SELECT datname FROM pg_database;
列举表:
postgres=# \dt
列举所有表、视图和索引:
postgres=# \d+
使用gsql的\d+命令查询表的属性。
postgres=# \d+ tablename
查看表结构:
postgres=# \d tablename
列举schema:
postgres=# \dn
查看索引:
postgres=# \di
查询表空间:
使用gsql程序的元命令查询表空间。
postgres=# \db
检查pg_tablespace系统表。如下命令可查到系统和用户定义的全部表空间。
postgres=# SELECT spcname FROM pg_tablespace;
查看数据库用户列表:
postgres=# SELECT * FROM pg_user;
要查看用户属性:
postgres=# SELECT * FROM pg_authid;
查看所有角色:
postgres=# SELECT * FROM PG_ROLES;
其他操作
查看openGauss支持的所有SQL语句。
postgres=#\h
切换数据库:
postgres=# \c dbname
切换用户:
postgres=# \c – username
退出数据库:
postgres=# \q