命令行方式登录PostgreSQL

摘要:
密码应该用单引号括起来。~~su postgresPassword:Lastlogin:WedMar113:19:02CST2017onpts/1-bash-4.2$psqlpsqlType“help”获取帮助。postgres=#createuserxxfwithpassword'******';CREATEROLEpostgres=#createdatabasexfownerxxf;CREATEDATABASEpostgres=#grantalprivilegesondatabasexftoxf;GRANTpostgres=#q-bash-4.2$exitlogout~˃psqlpsqlType“help”获取帮助。xxf=˃到目前为止,它在数据库xxf中。

目录:

  一、在默认配置条件下,本机访问PostgreSQL

  二、创建新用户来访问PostgreSQL

  三、最简单的做法

  四、开启远程访问

一、在默认配置条件下,本机访问PostgreSQL

切换到Linux用户postgres,然后执行psql:

su - postgres

Last login: Wed Mar 1 13:16:48 CST 2017 on pts/1
-bash-4.2$ psql

psql (9.2.18)
Type "help" for help.

postgres=#

此时就在数据库postgres中了。

二、创建新用户来访问PostgreSQL

1、如上所述,先切换到Linux用户postgres,并执行psql:

$ su - postgres

-bash-4.2$ psql

postgres=#

现在位于数据库提示符下。

2、创建数据库新用户,如 dbuser:

postgres=# CREATEUSER dbuser WITH PASSWORD '*****';

注意:

  1. 语句要以分号结尾。
  2. 密码要用单引号括起来。

3、创建用户数据库,如exampledb:

postgres=# CREATE DATABASE exampledb OWNER dbuser;

4、将exampledb数据库的所有权限都赋予dbuser:

postgres=# GRANT ALL PRIVILEGES ON DATABASE exampledb TO dbuser;

5、使用命令 q 退出psql:

postgres=# q

6、创建Linux普通用户,与刚才新建的数据库用户同名,如 dbuser:

$ sudo adduser dbuser

$ sudo passwd dbuser

7、以dbuser的身份连接数据库exampledb:

su - dbuser

Password:
Last login: Wed Mar 1 11:52:07 CST 2017 on pts/

[dbuser@master ~]$ psql -d exampledb

 三、最简单的做法

以你的普通Linux用户名,在数据库中创建同名的用户和数据库,如xxf,然后就可以本机直接连接到数据库xxf了。

~>su - postgres
Password:
Last login: Wed Mar 1 13:19:02 CST 2017 on pts/1
-bash-4.2$ psql
psql (9.2.18)
Type "help" for help.

postgres=# create user xxf with password '******';
CREATE ROLE
postgres=# create database xxf owner xxf;
CREATE DATABASE
postgres=# grant all privileges on database xxf to xxf;
GRANT
postgres=# q
-bash-4.2$ exit
logout
~>psql
psql (9.2.18)
Type "help" for help.

xxf=>

至此,就在数据库xxf中了。 

四、开启远程访问

1、编辑配置文件

文件:postgresql.conf

位置:/var/lib/pgsql/data/postgresql.conf

添加/修改:在所有IP地址上监听,从而允许远程连接到数据库服务器:

listening_address: '*'

文件:pg_hba.conf

位置:/var/lib/pgsql/data/pg_hba.conf

添加/修改:允许任意用户从任意机器上以密码方式访问数据库,把下行添加为第一条规则:

host    all             all             0.0.0.0/0               md5

2、重启数据库服务:

$ sudo systemctl restart postgresql

3、此后即可从其它机器上登录,例如用Navicat for PostgreSQL:

主机名或IP: 172.*.*.*

端口:          5432

初始数据库: xxf

用户:          xxf

密码:          ******  (数据库用户xxf的密码,不是Linux用户xxf的密码)

关于此主题的更多说明,请移步官方文档 Chapter 19. Client Authentication

参考:

  1. http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html
  2. PostgreSQL 9.2.20 Documentation Chapter 19. Client Authentication 19.1. The pg_hba.conf File 
  3. 高张远瞩(HiLoveS)的 PostgreSQL pg_hba.conf 文件简析

免责声明:文章转载自《命令行方式登录PostgreSQL》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux 命令详解(十一)Shell 解析 json命令jq详解四、MongoDB的查询下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

make: pg_config: Command not found

报错: [root@localhost c]#make make: pg_config: Command notfound make: ***No targets. Stop. [root@localhost c]# 解决 [root@localhost c]#yum install postgresql-devel Loaded plugins: f...

SQL和NoSQL

SQL和NoSQL  目前的数据库系统非常多,有传统的关系型的数据库系统(又被称为SQL数据库系统),有最近几年流行起来的NoSQL数据库系统。其中NoSQL数据库系统又分为很多种不同的类型,根据各个系统所支持的数据模型的不同,可以分为很多类,下面做一个简单的分类,更多的分类请参见dbengines的排名。 1、SQL数据库系统 ============...

[NewLife.XCode]百亿级性能

NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode。 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 开源地址:https://github.com/NewLifeX/X(求s...

Mysql基础

字段类型 mysql字段定义中INT(x)中的x仅仅指的是显示宽度。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。所以x的定义与存储空间没有任何关系都是4个字节。 超过最大数值不会报错但是根据此字段查询不到,也关联不起来。 查看mysql数据库编码 sho...

SQL Server2012数据库开启远程连接

在我们使用SQL Server数据库的时候很重要的一点就是开启数据库的远程连接,这是因为很多时候数据库部署在远程的服务器上会比较方便,而部署在客户端的话,由于客户端不固定,所以需要经常去部署,这样容易经常去改变数据库,从而造成系统不稳定,但是部署在服务器上我们需要远程连接,而当我们安装好一个数据库之后,默认是不开启数据库远程连接的,那么该怎样一步步去打开远...

自建 Gitlab (邮箱配置、拆分 PostgreSQL、Redis) + 随想

前言 最近折腾了一番自建 gitlab,在此做个记录,供君参考。整个构建过程基于 Docker Swarm(近期有计划将微服务移植到 Kubernetes,但还没倒腾顺手,暂时先沿用旧的方案),主题配图与主题无关,请忽略...... 1. 快速启用 配置的一般原则是先可用再优化,简单启动 gitlab 只需要一条命令: sudo docker run --...