028.PGSQL-用户创建、表空间创建、数据库创建、schema创建、表创建、生成测试数据、指定搜索路径、

 

 登录数据库
su postgres #注意这里postgers 前后都有空格
psql -U postgres -d postgres -p 5432

 

[centos@s101 /home/centos]$su postgres
[postgres@s101 /home/centos]$cd /
[postgres@s101 /]$psql -U postgres -d postgres -p 5432

 

用户创建

CREATE ROLE pguser WITH ENCRYPTED PASSWORD '123456';


postgres=# CREATE ROLE pguser WITH ENCRYPTED PASSWORD '123456';
CREATE ROLE

 

创建表空间目录

[postgres@s101 /var/lib/pgsql/13]$mkdir -p /var/lib/pgsql/13/pg_tbs/tbs_mydb

表空间创建


postgres=# create tablespace tbs_mydb owner pguser location '/var/lib/pgsql/13/pg_tbs/tbs_mydb';
CREATE TABLESPACE

数据库创建

复制代码
CREATE DATABASE "mydb"
WITH
  OWNER = "pguser"
  TEMPLATE = "template0"
  ENCODING = 'UTF8'
  TABLESPACE = "tbs_mydb"
;

COMMENT ON DATABASE "mydb" IS '测试数据库';
复制代码

赋予权限


postgres=# grant all on database mydb to pguser with grant option;
GRANT
postgres=# grant all on tablespace tbs_mydb to pguser ;
GRANT

需要给用户登录权限,不然会报错

postgres=# ALTER ROLE pguser LOGIN;
ALTER ROLE

测试登录

[postgres@s101 /]$psql -h localhost -p 5432 mydb pguser
Password for user pguser:
psql (9.2.24, server 13.3)
WARNING: psql version 9.2, server version 13.0.
Some psql features might not work.
Type "help" for help.

mydb=>

 

查看对应库的schemas


mydb=> \dn
List of schemas
Name | Owner
--------+----------
public | postgres
(1 row)

 

查看表空间和用户   \db


postgres=# \db
List of tablespaces
Name | Owner | Location
------------+----------+-----------------------------------
pg_default | postgres |
pg_global | postgres |
tbs_mydb | pguser | /var/lib/pgsql/13/pg_tbs/tbs_mydb
(3 rows)

 

创建schema

创建schema
CREATE SCHEMA myschema;

 

创建表

复制代码
CREATE TABLE "myschema"."o_ls_test" (
  
  "rid" int4,
  "name" varchar(200) COLLATE "pg_catalog"."default",
  "timeflag" timestamp without time zone default clock_timestamp()
)
;

ALTER TABLE "myschema"."o_ls_test" 
  OWNER TO "pguser";

COMMENT ON COLUMN "myschema"."o_ls_test"."rid" IS 'rid';
COMMENT ON COLUMN "myschema"."o_ls_test"."name" IS '名称';
COMMENT ON COLUMN "myschema"."o_ls_test"."timeflag" IS '创建时间'; 

COMMENT ON TABLE "myschema"."o_ls_test" IS '测试表';

CREATE INDEX "rid_index" ON "myschema"."o_ls_test" USING btree (
"rid" ASC NULLS LAST
);

复制代码

生成测试数据

insert into "myschema"."o_ls_test"(
rid 
,name 
)
select n ,n || '测试名字' || n
from 
generate_series(1,5000000)  n ;

 

 

查看搜索路径

复制代码
复制代码
mydb=> SHOW search_path;
   search_path
-----------------
 "$user", public
(1 row)


mydb=> SELECT current_schema();
current_schema
----------------
public
(1 row)





指定搜索路径


mydb=> SET search_path TO public, myschema ;
SET
mydb=> SELECT current_schema();
current_schema
----------------
public
(1 row)

mydb=> SHOW search_path;
search_path
------------------
public, myschema
(1 row)

查看搜索路径下schema的所有表
mydb
=> \dt List of relations Schema | Name | Type | Owner ----------+-----------+-------+-------- myschema | o_ls_test | table | pguser
复制代码

 

 


postgres@[local]:5432=#alter system set search_path = "$user",public,myschema;
ALTER SYSTEM
postgres@[local]:5432=#show search_path;
search_path
-----------------
"$user", public
(1 row)

postgres@[local]:5432=#SELECT pg_reload_conf();
pg_reload_conf
----------------
t
(1 row)

postgres@[local]:5432=#show search_path;
search_path
---------------------------
"$user", public, myschema

复制代码

 

表空间 tablespace  

数据库 database

schema schema 

 

posted @   star521  阅读(1611)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2020-07-24 003.PGSQL-Linux命令行下操作pgsql数据库
点击右上角即可分享
微信分享提示