postgres使用pg_ctl 命令

想要用pg_ctl等一系列的命令,须要配置环境变量:web

PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/local/pgsql/bin
export PGDATA=/usr/local/pgsql/data
export PATHsql

在.bash_profile 文件中添加上面的环境变量数据库

而后source  .bash_profile   使之生效。bash

在启动的时候,报错:pg_ctl: no database directory specified and environment variable PGDATA unsetsocket

须要把/usr/local/pgsql/data 的用户名和属组为 postgres  而且目录权限为0700 post

chmod -R 0700  /usr/local/pgsql/dataspa

命令配置完成,能够使用。操作系统

中止服务:命令行

[postgres@master pgsql]$ pg_ctl stop waiting for server to shut down...2018-12-20 17:27:15.726 CST [30069] LOG:  received fast shutdown request .2018-12-20 17:27:15.728 CST [30069] LOG:  aborting any active transactions 2018-12-20 17:27:15.728 CST [30214] FATAL:  terminating connection due to administrator command 2018-12-20 17:27:15.729 CST [30213] FATAL:  terminating connection due to administrator command 2018-12-20 17:27:15.730 CST [30215] FATAL:  terminating connection due to administrator command 2018-12-20 17:27:15.732 CST [30069] LOG:  worker process: logical replication launcher (PID 30076) exited with exit code 1
2018-12-20 17:27:15.732 CST [30216] FATAL:  terminating connection due to administrator command 2018-12-20 17:27:15.735 CST [30071] LOG: shutting down 2018-12-20 17:27:15.745 CST [30069] LOG:  database system is shut down done server stopped

启动服务:code

[postgres@master pgsql]$ pg_ctl start waiting for server to start....2018-12-20 17:27:53.811 CST [30324] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2018-12-20 17:27:53.811 CST [30324] LOG:  listening on IPv6 address "::", port 5432
2018-12-20 17:27:53.813 CST [30324] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432" 2018-12-20 17:27:53.828 CST [30325] LOG:  database system was shut down at 2018-12-20 17:27:15 CST 2018-12-20 17:27:53.830 CST [30324] LOG:  database system is ready to accept connections done server started

登入数据库默认用户为postgres

[postgres@master pgsql]$ psql psql (10.5) Type "help" for help. postgres=# select user; user   
----------
 postgres (1 row) postgres=#

指定用户登入-zhang

[postgres@master pgsql]$ psql -d mydb -U zhang psql (10.5) Type "help" for help. mydb=>

默认用户
postgres安装完成后,会自动在操做系统和postgres数据库中分别建立一个名为postgres的用户以及一个一样名为postgres的数据库。

psql -U zhang -d mydb -h 192.168.1.200 -W

[postgres@master ~]$ psql -U zhang -d mydb -h 192.168.1.200 -W Password for user zhang: psql (10.5) Type "help" for help. mydb=>

参数含义: -U指定用户 -d要链接的数据库 -h要链接的主机 -W提示输入密码。

建立用户:

createuser username   这个用法和下面的create user 是同样的

在PostgresSQL命令行中使用CREATE ROLE指令建立:

CREATE ROLE rolename;

在PostgresSQL命令行中使用CREATE USER指令建立

CREATE USER username;

 

CREATE USERCREATE ROLE的区别在于,CREATE USER指令建立的用户默认是有登陆权限的,而CREATE ROLE没有。

建立用户时设定用户属性

CREATE ROLE role_name WITH optional_permissions;

建立用户时设定登陆权限。

CREATE ROLE username WITH LOGIN;

 

修改用户属性

ALTER ROLE username WITH attribute_options;

经过如下方式禁止用户登陆

ALTERROLE username WITH NOLOGIN;

设置访问权限

GRANT permission_type ON table_name TO role_name;

eg: GRANT UPDATE ON tablename TO use_role; --赋予use_role tablename表的update权限
   GRANT SELECT ON ALL TABLES IN SCHEMA PUBLIC to use_role; --赋予use_role全部表的SELECT权限

特殊符号:ALL表明所访问权限,PUBLIC表明全部用户

GRANT ALL ON demo TO demo_role; --赋给用户全部权限
GRANT SELECT ON demo TO PUBLIC; --将SELECT权限赋给全部用户

撤销用户访问权限语法格式以下:REVOKE permission_type ON table_name FROM user_name;

相关文章
相关标签/搜索