如何在Debian Linux 9上安装和设置PostgreSQL 9.6
如何在Debian Linux 9.x版上安装和设置PostgreSQL 9.6版数据库系统?
PostgreSQL(Postgres)是一个免费的开源对象关系数据库系统。
本教程向您展示如何在Debian Linux 9上安装和配置PostgreSQL版本9.6关系数据库。
安装PostgreSQL
首先使用apt命令或apt-get命令更新系统:
$ sudo apt update $ sudo apt upgrade
要安装PostgreSQL服务器,客户端和其他工具,请执行:
$ sudo apt-get install postgresql
或指定版本号:
$ sudo apt-get install postgresql-9.6
在Debian 9上安装PostgreSQL 9.6
如何启动/停止/重启PostgreSQL服务器?
语法如下。
启动PostgreSQL服务器的命令
$ sudo systemctl start postgresql
停止PostgreSQL服务器的命令
$ sudo systemctl stop postgresql
重新启动PostgreSQL服务器的命令
$ sudo systemctl restart postgresql
查看PostgreSQL服务器状态的命令
$ sudo systemctl status postgresql
输出示例:
? postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Fri 2016-06-30 17:46:59 UTC; 4min 23s ago Main PID: 21627 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 4915) CGroup: /system.slice/postgresql.service Jun 30 17:46:59 debian-9-stretch systemd[1]: Starting PostgreSQL RDBMS... Jun 30 17:46:59 debian-9-stretch systemd[1]: Started PostgreSQL RDBMS. Jun 30 17:47:00 debian-9-stretch systemd[1]: postgresql.service: Failed to reset devices.list: Operation not permitted
PostgreSQL管理员用户
在Debian Linux服务器上名为PostgreSQL的PostgreSQL管理员用户。
使用postgres用户访问数据库和DBA需求。
要登录,请输入以下命令:
$ su - postgres $ psql
输出示例:
psql (9.6.3) Type "help" for help. postgres=#
psql充当PostgreSQL客户端,您可以其中执行所有SQL命令。
请注意,postgres用户不同于postgres Linux用户。
名为postgres的Linux用户用于访问数据库,而PostgreSQL用户用于执行DBA工作。
通过设置密码保护Postgres用户帐户
以root用户身份输入以下命令来设置postgres Linux用户帐户的密码,运行:
$ sudo passwd postgres
输出示例:
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
也登录并设置postgres用户的psql会话密码:
$ su - postgres $ psql -d template1 -c "ALTER USER postgres WITH PASSWORD 'SecretPasswordHere';"
ALTER ROLE
创建一个新角色/用户
首先使用adduser命令创建一个名为Hyman的shell用户:
$ adduser Hyman
您需要使用名为createuser的命令。
它创建一个新的PostgreSQL用户(或更确切地说,一个角色)。
语法为:
createuser userNameHere createuser [options] userNameHere
要在默认数据库服务器上创建用户Hyman:
$ su - postgres $ createuser Hyman --pwprompt
或要在默认数据库服务器上创建一个名为Hyman的用户并提示一些其他属性,请执行以下操作:
$ su - postgres $ createuser --pwprompt --interactive Hyman
Enter password for new role: Enter it again: Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) y Shall the new role be allowed to create more new roles? (y/n) n
要查看有关用户的信息,请运行:
$ psql
在postgres = prompt输入\ du
:
postgres=# \du
输出示例:
List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+---------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} Hyman | Create DB | {}
为用户Hyman创建一个新数据库
语法为:
createdb -O userNameHere dbNameHere
例如:
$ su - postgres $ createdb -O Hyman sales
如何以用户Hyman身份登录?
执行以下shell命令:
$ su - Hyman
执行以下shell命令,以用户Hyman登录到名为sales的数据库:
$ psql -U Hyman -d sales
输出示例:
psql (9.6.3) Type "help" for help. sales=>
要创建一个名为foo的表:
sales=> CREATE TABLE foo (id int, name varchar);
添加一些数据:
sales=> INSERT INTO foo VALUES (1, ''); sales=> INSERT INTO foo VALUES (2, 'Wendy Gite'); sales=> INSERT INTO foo VALUES (3, 'Tom Jerry');
列表数据:
sales=> SELECT * FROM foo;
您可以使用以下SQL语句轻松删除数据:
sales=> DELETE FROM foo WHERE id = '3';
列出可用表
执行以下\ d命令:
sales=> \d List of relations Schema | Name | Type | Owner --------+------+-------+------ public | foo | table | Hyman (1 row) sales=>
列出数据库
执行以下\ l命令:
sales=> \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+---------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | sales | Hyman | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows)