Postgresql数据库管理

在安装pgs的服务器,直接输入psql进入控制台,在控制台中完成Postgrepsql数据库管理工作。

默认情况下 PostgreSQL 安装完成后,自带了一个命令行工具 SQL Shell(psql),这个就是控制台

  


# psg的启动,关闭等等
pg_ctl {start|stop|restart|reload|status}

重启之后,
su - postgres   # 切换用户
pg_ctl start     # 启动数据库

pg_ctl reload   # 重新读取配置文件
# 进入pg控制台
$ psql gzpgis      # 进入某数据库控制台,默认进入postgres
psql (12.0)
Type "help" for help.

\l       # 查看所有数据库
select * from pg_database;   # 查看所有数据库

postgres=# \d     # 查看所有表

\d tablename    # 查看表结构

\dt tablename  # 查看表的基本信息

select * from pg_tables t where t.schemaname='public';    # 查看所有表

drop table mlp ; # 删除表和表结构

truncate table mlp ;# 删除表数据,释放空间,保留表结构

delete table mlp ; # 删除表数据,不释放空间,保留表结构

# 时间戳字段处理
create table times (id numeric not null,lasttime timestamp(6));

insert into time (id ,lasttime) values (1,'2020-08-26 00:00:00'::timestamp)

update time set jqtime = jqtime + '1 day' where id =1 ;  # 加一天

update time set jqtime = to_date('2020-08-26 00:00:00','yyy-MM-dd hh24:mi:ss') - interval '1 day' where id =1 ;    # 减少一天

# 显示系统时间和日期
select now();
select current_date;
select current_time;

postgres=# \dx    # 列出已经安装的扩展


postgres=# \password        #修改密码,临时有效
Enter new password: 
Enter it again: 

***********正确修改用户名密码的语句:
alter role kong with password '123456';

***********查看用户名和密码的语句:
select rolname,rolpassword form pg_authid;

postgres=# \du      # 查看所有用户

# 创建用户
postgres=# create user aganliang with password '123456';
CREATE ROLE


# 更改用户角色-----添加超级用户角色,要不,qgis连接postgresql出现无法读取表的错误
alter role aganliang with superuser;

# 修改表所有者
alter table d_mlp owner to agan;

# 创建数据库
postgres=# create database gzpgis owner aganliang;
CREATE DATABASE

# 授权用户数据库权限
postgres=# grant all privileges on database gzpgis to aganliang;
GRANT
postgres=# 


2.登录数据库

psql -U aganliang -d gzpgis -h 127.0.0.1 -p 5431

-U 用户
-d 数据库
-h 服务器
-p 端口

# 退出登录
gzpgis=> \q

3.pg控制台命令

\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。

4.pg设置远程连接

pg安装完毕,默认仅仅接受localhost连接,如果要开启远程连接,只需要修改data目录下的pg_hba.confpostgresql.conf


# 在pg_hba.conf中添加外部远程连接
host    all             all             192.168.1.0/24          md5

host    all             all             0.0.0.0/0               md5

# 在postgresql.conf  添加
listen_addresses='*'
来允许数据库服务器监听来自任何主机的连接请求

PS: 如果远程依然无法连接,一般都是firewall禁止了端口,这个时候就要设置firewall端口

参考这篇文章:CentOS 7 防火墙设置

 

5.设置pg开机启动------下面这个方法还无法实现开机启动,以后研究一下。

1.拷贝启动脚本到/etc/init.d/,并重命名
cp /pgs/postgresql-12.0/contrib/start-scripts/linux  /etc/init.d/postgresql

2.修改启动脚本配置
vi /etc/init.d/postgresql
修改内容包括pg安装目录、数据目录、用户、日志文件等,如下图所示。

3.让所有用户对启动脚本有修改和执行的权限
chmod a+x /etc/init.d/postgresql

4.chkconfig命令将该脚本注册为开机启动
chkconfig --add postgresql


reboot 试试

Postgresql数据库管理_第1张图片

6.创建表空间

表空间其实就是一个存储目录

1.创建一个目录,这个目录不能再/data/目录下面
mkdir /pgs/usr/local/pgsql/sde


2.更改目录的所有者和权限
chown postgres:postgres /pgs/usr/local/pgsql/sde/


3.创建表空间必须是超级用户
postgres用户登录数据库
postgres=# create tablespace SDEtablespace owner aganliang location '/pgs/usr/local/pgsql/sde';
CREATE TABLESPACE
psql -c "CREATE USER tegola;"
psql -d gdpgis -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO tegola;"

 

 

 

你可能感兴趣的:(PostgreSQL)