「PostgreSQL」- 运行服务(=> Chapter 19. Server Setup and Operation)

第一步、数据目录初始化

我们通过 APT 安装 PostgreSQL 数据库,所以数据初始化是自动完成。

如果通过源码安装,需要通过 initdb 方式进行初始化,参考文档以获取更多内容。

第二步、启动数据库服务

我们通过 APT 安装 PostgreSQL 数据库,所以服务的启动已经自动完成。

如果需要手动执行命令:

systemctl start postgresql

如果通过源码或其他方式安装,需要进行 PostgreSQL 服务的启动,参考文档以获取更多内容。

配置允许远程连接

我们通过 APT 安装,所以部分配置方法与主机管理相关,但其本质还是共通的。

# vim /etc/postgresql/14/main/conf.d/conn-and-auth.conf
...
listen_addresses = '*'
...

# nc -v -z 192.168.10.78 5432
Connection to 192.168.10.78 5432 port [tcp/postgresql] succeeded!

# vim pg_hba.conf
host    all             all              0.0.0.0/0                       md5
host    all             all              ::/0                            md5

# systemctl restart postgresql.service

第三步、连接数据库服务

Connecting to PostgreSQL on Linux for the first time
Getting error: Peer authentication failed for user “postgres”, when trying to get pgsql working with rails

我们具有 MySQL 的使用经验,但是多种数据库产品在连接方式上存在细微差异。

下面演示如何使用 psql 命令连接 PostgreSQL 数据库:

// ---------------------------------------------------------------------------- // 远程连接

# psql -h 107.170.158.89 -U postgres
Password for user postgres:
...

// ---------------------------------------------------------------------------- // 本地连接

# PostgreSQL 9.2.24 on CentOS 7.5

# 连接数据库:
sudo -u postgres psql

# 修改用户密码(远程连接密码)
postgres=# ALTER USER postgres PASSWORD 'myPassword';
ALTER ROLE

常用数据库操作

DIY: A PostgreSQL database server setup anyone can handle
PostgreSQL命令语法大全
How to List Databases and Tables in PostgreSQL Using psql

查看所有数据库:\list
创建数据库:CREATE DATABASE databasename;
选择数据库:\connect databasename

查看表:\dt
创建表:CREATE TABLE tablename (id INTEGER PRIMARY KEY, name VARCHAR);

查看用户:\du
创建用户:CREATE USER username;
修改用户密码:\passwd username
授权用户:GRANT ALL PRIVILEGES ON DATABASE databasename TO username;

关闭数据库服务

我们通过 APT 安装 PostgreSQL 数据库,其默认通过 systemd 管理数据库:

systemctl stop postgresql

或者,通过信号结束:
1)SIGTERM,Smart Shutdown mode
2)SIGINT,Fast Shutdown mode
3)SIGQUIT,Immediate Shutdown mode

参考文献

Configure PostgreSQL to allow remote connection – BigBinary Blog
How to Set the Default User Password in PostgreSQL | Tutorial by Chartio