将PostgreSQL安装和初次使用配置记录下来,方便以后找回。
1、添加源,在/etc/apt/sources.list.d目录下创建pgdg.list文件,并写入以下内容:
sudo vim /etc/apt/sources.list.d/pgdg.list
deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
2、添加密钥,并更新
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
3、用apt方式安装PostgreSQL
sudo apt-get install postgresql-11
4、使用PostgreSQL
在PostgreSQL安装完成会创建一个postgres用户,使用需要切换到这个用户
sudo su postgres
psql
进入psql界面,输入help
会有使用提示
postgres=# help
You are using psql, the command-line interface to PostgreSQL.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
查看所有的库
\l
查看所有的表
SELECT tablename FROM pg_tables;
创建用户
CREATE USER appadmin WITH PASSWORD '123456';
修改用户角色
ALTER USER appadmin WITH SUPERUSER;
这里有个需要注意的地方,如系统已经有appadmin用户了,那么可以直接切换过去使用psql命令了。当然如果没有提前创建好对应的数据库,psql可能报错,没法进去,因为psql会默认根据当前用户进入同名数据库。
删除用户
DROP USER appadmin;
创建数据库
CREATE DATABASE appadmin;
将新的数据库appadmin所有者设置为appadmin用户
ALTER DATABASE appadmin OWNER TO appadmin;
如果运行提示权限错误,需要先赋予权限
GRANT ALL PRIVILEGES ON DATABASE appadmin TO appadmin;
删除数据库
DROP DATABASE appadmin;
另外,创建数据库和删除数据库在非psql交互环境下,可以使用createdb和dropdb来创建。
配置远程登录
1、编辑postgresql.conf文件,修改数据库服务监听地址
sudo vim /etc/postgresql/11/main/postgresql.conf
找到这行配置#listen_addresses = 'localhost'
将注释去掉,然后把localhost改成*
listen_addresses = '*'
2、编辑pg_hba.conf文件,修改访问策略
sudo vim /etc/postgresql/11/main/pg_hba.conf
在文件最后增加以下内容,表示允许appadmin在任意地址使用密码登录
host all appadmin 0.0.0.0/0 md5