PostgreSQL
Systemd
使用 Systemd 管理非二进制发行版安装方式时的 PostgreSQL。
ini
[program:postgresql]
command = /path/to/pg_ctl -D /path/to/data/dir -l /path/to/logfile start
process_name = %(program_name)s
numprocs = 1
directory = /path/to/install/dir
umask = 022
autostart = true
autorestart = true
user = postgres
redirect_stderr = true
stdout_logfile = /var/log/supervisor/postgresql.log
stdout_logfile_maxbytes = 100MB
SQL备注
创建用户
sqlcreate user <USER> with password '<PASSWORD>';
将数据库 DBNAME 的所有权限赋予给用户 USER
sqlGRANT ALL PRIVILEGES ON database <DBNAME> TO < USER >;
将数据库 DBNAME 的所有者改为 USER
sqlALTER DATABASE <DBNAME> OWNER TO <USER>;
将表中
updated_at
字段值为null
的记录的updated_at
字段值更新为update_at
(int 型的 Unix 时间戳) 字段对应的时间戳。sqlupdate orders set updated_at = to_timestamp(update_at) where updated_at is null;
命令行
shell
$ psql -d lmcw
-d
指定数据库。-U
指定登录用户名。-W
指定登录密码。-h
指定服务器地址。-p
指定服务器端口。
数据库连接
sql
-- 查询PG数据库连接情况
select datname,usename,application_name,client_addr,client_hostname,state from pg_stat_activity;
-- 查询连接总数
select count(*) from pg_stat_activity;
-- 杀死进程释放连接
select pg_terminate_backend(<PID>);
-- 杀死所有的空闲连接
select pg_terminate_backend(pid) from pg_stat_activity where state='idle';