PostgreSQL安装配置

windows10下部署免安装版本 PostgreSQL

先安装 Visual C++ Redistributable for Visual Studio 2015, 有可能安装其他软件时已经安装

https://www.microsoft.com/zh-CN/download/details.aspx?id=48145下载安装: vc_redist.x64.exe

部署 PostgreSQL:

# 初始化数据库
C:\software\pgsql\bin\initdb -D D:\pgdata -U postgres -A password -E utf8 --locale=C -W
# 输入的密码: pgpwd

命令行参数意义:

        -D  data                       指定初始化的数据库目录(此处为当前目录的data文件夹)

        -U  postgres                数据库超级用户名(此处为postgres,如果不设置,会用当前windows用户名为账号)

        -A  password              数据库使用密码授权

        -E  utf8                       数据库编码格式

        --locale=C                  数据库簇使用的本地化语言 

        -W                              命令行执行后 输入密码

        其他参数的 initdb --help查看

启动脚本(d:\bat\pgstart.bat):

@ECHO OFF
echo start pg ......
C:/software/pgsql/bin/pg_ctl -D "D:\pgdata"  start

超级用户登录: C:\software\pgsql\bin\psql -U postgres

错误: ImportError: DLL load failed while importing _psycopg

conda uninstall psycopg2
conda install psycopg2-binary
# 如果找不到 psycopg2-binary, 添加 conda-forge
conda config --add channels conda-forge
conda config --set channel_priority strict

ubuntu下安装 PostgreSQL

参考:https://www.postgresql.org/download/linux/ubuntu/安装指定版本(目前是13,如果不指定版本会安装12):

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql
sudo  apt-get  install postgresql-doc postgresql-doc-14  isag

安装程序会为 PostgreSQL创建超级用户 postgres, 进入pg命令行的方式(退出 postgres用户用exit,退出 psql用 quit,修改密码):

~$ sudo su postgres
postgres@xxx:$ psql
psql (13.0 (Ubuntu 13.0-1.pgdg20.04+1))
输入 "help" 来获取帮助信息.

postgres=# \l
postgres=# ALTER USER postgres WITH PASSWORD 'pgpassword';
postgres=# quit

ubuntu下使用pgweb客户端

Github下载最新 release版本, 假定放的位置: /home/username/pgweb_linux_amd64 , 启动:

/home/username/pgweb_linux_amd64  --host localhost --user postgres --pass pgpassword

访问: http://localhost:8081/ 就可以管理 PostgreSQL 数据库了。

用 supervisor 运行 pgweb, 创建配置文件 sudo vi /etc/supervisor/conf.d/pgweb.conf

[program:pgweb]
command = /home/username/pgweb_linux_amd64  --host localhost --user postgres --pass pgpassword
directory = /home/username
autostart = true
startsecs = 20
autorestart = true
startretries = 3
user = username
environment = STNORESTART="1", HOME="/home/username"

运行:

添加:
sudo supervisorctl update
启动
supervisorctl start pgweb
重启
supervisorctl restart pgweb
停止
supervisorctl stop pgweb

扩展:pg_stat_statements

postgres=# CREATE EXTENSION pg_stat_statements;
postgres=# show config_file;
               config_file
-----------------------------------------
 /etc/postgresql/13/main/postgresql.conf

编辑文件 /etc/postgresql/13/main/postgresql.conf

shared_preload_libraries= 'pg_stat_statements' # 表示要在启动时导入pg_stat_statements 动态库。
pg_stat_statements.max= 10000 #pg_stat_statements中记录的最大的SQL条目数,默认为5000
pg_stat_statements.track= all #记录pg_stat_statements中的, 值为 top表示不监控嵌套的sql语句
pg_stat_statements.track_utility = true #对 INSERT/UPDATE/DELETE/SELECT 之外的sql动作也作监控。
pg_stat_statements.save = true # 当postgresql停止时,把信息存入磁盘文件以备下次启动时再使用。

重启postgresql:service postgresql restart

查询:

SELECT  query, calls, total_exec_time, (total_exec_time/calls) as average ,rows, 
        100.0 * shared_blks_hit /nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent 
FROM    pg_stat_statements 
ORDER   BY average DESC LIMIT 10;

windows10:错误1067,进程意外终止

删除服务 postgresql-x64-13, 以管理员身份运行:

Net Stop postgresql-x64-13
sc delete postgresql-x64-13

关闭windows的服务管理窗口,以管理员身份打开命令行重新安装服务:

pg_ctl register -N "PostgreSQL" -D "C:\PostgreSQL\13\data"
© Licensed under CC BY-NC-SA 4.0

在b进位制中,以数n起头的数出现的机率为logb(n + 1) − logb(n) —— 本福特定律

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!