在Linux中安装PostgreSQL并连接

本文详细介绍了如何在Ubuntu 18.04上安装PostgreSQL,包括从官方repository安装,启动/关闭服务,使用PostgreSQL Shell,修改配置以允许远程连接,以及创建数据库。此外,还提到了使用HeidiSQL作为Windows下的客户端工具进行连接。

1,安装PostgreSQL

官网说PostgreSQL is available in all Ubuntu versions by default。因此去Ubuntu的官方repository(https://packages.ubuntu.com/)中搜索,确定存在后直接安装。
例如此时PostgreSQL12已经发布,但在我用的Ubuntu18.04的repository中还只有PostgreSQL10:

(bionic (18.04LTS) (database): object-relational SQL database (supported version)
10+190ubuntu0.1 [security]: all )

因此还可以按官网步骤手动安装:https://www.postgresql.org/download/linux/ubuntu/

2,Startup或shutdown PostgreSQL

安装后即可start或stopPostgreSQL:

sudo pg_ctlcluster 12 main start
sudo pg_ctlcluster 12 main stop

启动或停止PostgreSQL都会在log中记录下来。因此每次执行了start或stop命令后,查看log文件以确定服务是否正常

tail /var/log/postgresql/postgresql-12-main.log

3,连接PostgreSQL

有多种方式可以连接到PostgreSQL:使用默认安装的PostgreSQL Shell,使用pgadmin或第三方客户端如HeidiSQL。
a,PostgreSQL Shell的文件名为psql。安装PostgreSQL会自动产生一个postgres用户,首先需要切换到postgres用户然后运行psql:

sudo su postgres
/usr/lib/postgresql/12/bin/psql

进入shell之后就可以执行各种任务了:

postgres=# select version();
PostgreSQL 12.4 (Ubuntu 12.4-1.pgdg18.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit
(1 row)

b,pgadmin有客户端和网页版,需要单独安装。这里我没有尝试。
c,我选择在windows环境使用客户端HeidiSQL远程连接PostgreSQL。需要注意的是,PostgreSQL默认配置仅监听127.0.0.1,因此如果想远程连接PostgreSQL,需要修改配置文件。

/etc/postgresql/12/main/pg_hba.conf

打开该文件,找到# IPv4 local connections,将其改为:

host all all 127.0.0.1/32 md5 – 将原本的配置注释掉
host all all 0.0.0.0/0 trust – 加入一行新的配置

配置文件修改后需要重启PostgreSQL,然后可使用netstat查看网络连接。

HeidiSQL的安装很简单不再累述。安装完毕后新建一个新session,连接数据库配置信息为(若是其他第三方工具,配置信息也类似):

network type: postgresql(TCP/IP)
Hostname: 填入postgresql所在机器IP地址,在postgresql机器上用ifconfig命令确认。
用户名: postgres
密码: 不填
端口:5432(默认端口)
Database: 选择你要连接的数据库

HeidiSQL连接上PostgreSQL后即可开始运行SQL:

SELECT * FROM pg_database;

也可以自行在PostgreSQL新建数据库用户,用自建的用户连接数据库。

4,新建数据库

有两种方式新建数据库:
a, 找到/usr/lib/postgresql/12/bin/createdb文件,并运行:

./createdb mydb

b, 或者用psql/第三方客户端连接到PostgreSQL后通过SQL建立:

CREATE DATABASE ‘mydb’;
SELECT * FROM pg_database; – 查看已有数据库

PostgreSQL属于广为人知的关系型数据库管理系统,因此它也使用了我们熟知的table,row,column等概念。但与其他关系型数据库管理系统不同的是,PostgreSQL使用面向对象的思想来组织数据库结构,称为object-oriented database。
在PostgreSQL中,一个由单独的PostgreSQL服务器实例管理的多个数据库称为一个数据库cluster。

5,连接到数据库

a, 进入shell时同时指定连接的数据库

postgres@ubuntu:/usr/lib/postgresql/12/bin$ psql test
psql (12.4 (Ubuntu 12.4-1.pgdg18.04+1))
Type “help” for help.
test=# select * from table; – 数据库名是test,注意此时prompt已经是test了。
test=# \h – 查询SQL命令帮助
test=# \q – 退出psql
test=# SELECT datname FROM pg_database; – 查看现有数据库。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值