如何在Debian 10/Debian 9上安装PostgreSQL 12
如何在Debian 10/Debian 9上安装PostgreSQL 12?
PostgreSQL是一个强大的关系数据库管理系统,用于全球范围用于运行关键任务应用程序。
PostgreSQL基于Postgres 4.2.
PostgreSQL 12已发布于2019年10月3日的一般使用。
本教程将重点关注用户如何在Debian 10/Debian 9 Linux发行版上安装PostgreSQL 12.
请按照以下步骤在Debian 10/Debian 9 Linux系统上安装PostgreSQL 12.
第1步:更新系统
如果是新服务器实例,建议更新当前系统包。
sudo apt update sudo apt -y upgrade sudo shutdown -r now
第2步:添加PostgreSQL 12存储库
用于签名包的GPG密钥需要导入系统:
sudo apt update sudo apt -y install gnupg2 wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add
导入GPG密钥后,添加PostgreSQL存储库:
echo "deb http://apt.postgresql.org/pub/repos/apt/`lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list
第3步:在Debian 10/Debian 9上安装PostgreSQL 12
现在,存储库已成功添加,更新包列表并在Debian 10/Debian 9 Linux系统上安装PostgreSQL 12.
sudo apt update sudo apt -y install postgresql-12 postgresql-client-12
成功的安装打印了类似于下一个屏幕截图中共享的消息。
每个系统重新引导后,都会启动PostgreSQL服务并将其设置为提出。
$systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2019-10-06 10:23:46 UTC; 6min ago Main PID: 8159 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 2362) CGroup: /system.slice/postgresql.service Oct 06 10:23:46 deb10 systemd[1]: Starting PostgreSQL RDBMS… Oct 06 10:23:46 deb10 systemd[1]: Started PostgreSQL RDBMS. $systemctl status Hyman@theitroad ● Hyman@theitroad - PostgreSQL Cluster 12-main Loaded: loaded (/lib/systemd/system/Hyman@theitroad; indirect; vendor preset: enabled) Active: active (running) since Sun 2019-10-06 10:23:49 UTC; 5min ago Main PID: 9242 (postgres) Tasks: 7 (limit: 2362) CGroup: /system.slice/system-postgresql.slice/Hyman@theitroad ├─9242 /usr/lib/postgresql/12/bin/postgres -D /var/lib/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.conf ├─9254 postgres: 12/main: checkpointer ├─9255 postgres: 12/main: background writer ├─9256 postgres: 12/main: walwriter ├─9257 postgres: 12/main: autovacuum launcher ├─9258 postgres: 12/main: stats collector └─9259 postgres: 12/main: logical replication launcher Oct 06 10:23:47 deb10 systemd[1]: Starting PostgreSQL Cluster 12-main… Oct 06 10:23:49 deb10 systemd[1]: Started PostgreSQL Cluster 12-main. $systemctl is-enabled postgresql enabled
第4步:测试PostgreSQL连接
在安装过程中,自动创建Postgres用户。
此用户对整个PostgreSQL实例具有完整的超级基金。
在切换到此帐户之前,登录系统用户应该具有sudo权限。
sudo su - postgres
让我们将此用户密码重置为我们可以记住的强密码。
psql -c "alter user postgres with password 'Hyman@theitroad'"
使用命令启动PostgreSQL提示符:
$psql
获取如下所示的连接详细信息。
$psql psql (12.0 (Debian 12.0-1.pgdg100+1)) Type "help" for help. postgres=# \conninfo You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".
让我们创建一个测试数据库和用户,看看它是否正常工作。
postgres=# CREATE DATABASE mytestdb; CREATE DATABASE postgres=# CREATE USER mytestuser WITH ENCRYPTED PASSWORD 'Hyman@theitroad'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE mytestdb to mytestuser; GRANT
列表已创建的数据库:
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+---------+---------+------------------------ mytestdb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres + | | | | | mytestuser=CTc/postgres postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows)
连接数据库:
postgres-# \c mytestdb You are now connected to database "mytestdb" as user "postgres".
安装的其他PostgreSQL实用程序(如CreateUser和CreatedB)可用于创建数据库和用户。
Hyman@theitroad:~$createuser myuser --password Password: Hyman@theitroad:~$createdb mydb -O myuser Hyman@theitroad:~$psql -l
我们可以在PostgreSQL Server上创建和连接到数据库。
步骤5:配置远程连接
PostgreSQL的安装仅接受来自LocalHost的连接。
在理想的生产环境中,我们将拥有一个连接到它的中央数据库服务器和远程客户端 - 但当然在私有网络(LAN)中。
要启用远程连接,请编辑PostgreSQL配置文件:
sudo nano /etc/postgresql/12/main/postgresql.conf
取消记录行59并更改侦听地址以接受网络中的连接。
# Listen on all interfaces listen_addresses = '*' # Listen on specified private IP address listen_addresses = '192.168.10.11'
更改后,重新启动PostgreSQL服务。
sudo systemctl restart postgresql
确认听听地址。
# netstat -tunelp | grep 5432 tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 111 112837 11143/postgres tcp6 0 0 :::5432 :::* LISTEN 111 112838 11143/postgres
第6步:安装PGADMIN4管理工具
如果要从Web界面管理PostgreSQL数据库服务器,请安装PGADMIN4.