一、安装(离线安装方式请看最后)
-
在开始使用PostgreSQL之前,必须先安装它。在Windows下安装PostgreSQL比较简单,按照安装程序的提示一步步进行即可,直接安装为服务形式,超简单,这里不再赘述。
-
在Linux下,可以使用RPM源安装,在官方网站上有操作步骤,这里不再赘述。
-
从源代码进行安装,过程如下:
1)从PostgreSQL官方网站下载最新源代码,通常是.tar.gz的压缩格式。
2)通过tar或者图形化软件解压源码包,假设解压到/usr/local/src/postgre目录下。
3)从源代码编译安装PostgreSQL需要用到C语言开发库(包括gcc、ld等),默认配置的情况下还需要libreadline、zlib和xml2这几个开发库的支持,在Ubuntu等Linux发行版下可以通过apt-get安装上述开发库,Red Hat下用yum进行安装依赖包。
4)在源代码目录下运行configure脚本。
5)在源代码目录下分别执行make和make install命令即可从源代码编译PostgreSQL并将相关文件拷贝到目标目录下
ubuntu下:
sudo apt-get install postgresql 将会自动从网络上安装,如果是在线安装需要界面化工具需要安装GUI管理工具:sudo apt-get install pgadmin3
如果是本地安装,从网上下载的安装文件.run文件,直接运行即可
依据步骤执行即可
二、配置网络,以便远程访问
sudo nautilus切换到管理文件夹下,然后配置两个文件,路径默认为/opt/postgreSQL/9.2/data下
postgresql.conf中listen_address=* 不过现在安装上去默认
pg_hba.conf中添加网段host all all 192.168.9.0/24 md5
并且保证客户机和服务器互通
问题:
如果发现postgres服务不能启动,查看log文件(data/pg_log下的startup.log)提示是权限问题,可以修改data目录权限,chmod 700 postgres /opt/postgreSQL/9.2/data即可
最后 启动服务:sudo /etc/init.d/postgresql -9.2 start(stop | restart分别是停止和重启)
另外,如果是系统默认安装的,比如centos6.4系统默认安装的话,需要配置的地方
1)vi /var/lib/pqsql/data/pg_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.9.0/24 md5如果是所有地址可以配置在文件末尾添加:
host all all 0.0.0.0/0 md5
2)编辑/var/lib/pqsql/data/postgresql.conf
配置 listen_addresses = '*'
3)配置远程访问密码(如果知道省略)
[root@centos ~]# su postgres -c psql postgres
could not change directory to "/root"
psql (8.4.18)
Type "help" for help.
postgres=# alter user postgres with passwd 'vion';
postgres=# alter user postgres with password 'vion';
三、简单使用
1、进入命令行界面
运行psql程序即可,如果没有可以安装,windows下是默认安装的,linux下不是需要单独安装
psql -U postgres -d postgres
其中最后的是默认的库postgres 可以省略不指定库名
2、创建数据库
create database “testdb1” 各种参数(比如with owner = postgres encoding = “UTF8” tablespace = pg_default等),注意引号
3、创建表空间
create tablespace “testDbs”;
4、创建表
create table testtb(i int)
5、创建角色和用户
PostgreSQL的create role与create user命令是等效的,只是前者默认是非login的,而后者默认是login的。
create role “testrole”
create user “testuser1” with password “testuser1” login in role ”testrole“
慢查询配置:
PostgreSQL
开启慢SQL捕获在排查问题时是个很有效的手段PostgreSQL 日志支持的输出格式有 stderr(默认)、csvlog 、syslog
一般的错误跟踪,只需在配置文件 【postgresql.conf】简单设置几个参数,当然还有错误级别等要设置。
复制代码
logging_collector = on
log_destination = 'stderr'
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'默认的跟踪日志记录在 pgdate/log 中,如 /usr/local/pgsql/data/log 。
其他几个重要参数说明:
log_rotation_age = 1440 #minute,多长时间创建新的文件记录日志。0 表示禁扩展。
log_rotation_size = 10240 #kb,文件多大后创建新的文件记录日志。0 表示禁扩展。
log_truncate_on_rotation = on #可重用同名日志文件
当需要跟踪SQL语句或者慢语句,得需要设置以下参数:log_statement = all #需设置跟踪所有语句,否则只能跟踪出错信息
log_min_duration_statement = 5000 #milliseconds,记录执行5秒及以上的语句
log_statement:
设置跟踪的语句类型,有4种类型:none(默认), ddl, mod, all。跟踪所有语句时可设置为 "all"。
# None表示不记录,ddl记录所有数据定义命令,比如CREATE,ALTER,和DROP语句,
# mod记录所有ddl语句,加上数据修改语句INSERT,UPDATE等
# all记录所有执行的语句,将此配置设置为all可跟踪整个数据库执行的SQL语句,但会对数据库性能产生较大影响,生产环境不建议配置此值log_min_duration_statement:
跟踪慢查询语句,单位为毫秒。如设置 5000,表示日志将记录执行5秒以上的SQL语句。当 log_statement=all 和 log_min_duration_statement 同时设置时,将跟踪所有语句,忽略log_min_duration_statement 设置。所以需按情况设置其中一个或两个值。
使用管理员登录加载配置
select pg_reload_conf();
show log_min_duration_statement;
针对某个用户或者某数据库进行设置alter database test set log_min_duration_statement=5000;
捕获正在查询的慢SQL
select * from pg_stat_activity where state<>'idle' and now()-query_start > interval '5 s' order by query_start ;
centos7/Linux安装postgres&postgis方式-追加
以下为centos7.8安装postgresql15+postgis3.3步骤
1,安装EPEL软件仓库
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install epel-release
2,安装postgis和postgresql
自动解决依赖
yum install -y postgresql15-server
yum install -y postgis33_15
如果需要离线安装,则先下载rpm安装包
安装下yum下载插件:
yum install yum-plugin-downloadonly
查看可下载离线包的版本:
yum list postgre*
postgis
然后下载离线rpm包到指定目录:
yum install --downloadonly --downloaddir . postgis33_15
yum install --downloadonly --downloaddir . postgresql15-server
然后可以 拿着这些rpm包在一个离线环境进行安装,如果环境不一致可能缺少一些rpm依赖,当然如果你安装系统时侯一摸一样将不会出现问题。