在安装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.conf和postgresql.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 试试
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;"