PostgreSQL基本安装和操作
安装
我用的 Manjaro
,安装特别简单pacman -S postgresql
就好了。
pgAdmin
安装也是一条命令pacman -S pgadmin4
。
也可以查看一下版本pacman -Ss |grep pgadmin
。
下面是 Centos7 安装
postgres有些人估计都没有听说过,没关系,可以百度自己了解一下,这里说一下Centos7.6_1810版本的安装(目前的最新版)
查询有没有安装
1 | rpm -qa|grep postgre |
查询postgre的yum源
1 | yum list |grep postgre |
下载地址:https://www.postgresql.org/download/linux/redhat/
一、yum安装
点开下载网址,安装姿势有了。直接看(三、通用操作)
yum安装已经在/usr/bin中添加了链接,可以执行postgre的命令。
安装之后的路径是:/var/lib/pgsql/10/data/
1 | # Install the repository RPM: |
查看安装的配置路径
1 | su postgres |
二、解压安装
1 下载源代码并解压
1 | wget https://ftp.postgresql.org/pub/source/v11.0/postgresql-11.0.tar.gz |
如果编译过程中遇到问题,比如缺少GCC、readline、zlib等,安装方式都是:
1 | yum list |grep xxx |
2 创建用户组和用户
1 | groupadd postgres #新增用户组 |
3 创建数据目录
1 | mkdir /usr/local/pgsql/data |
4 数据库操作
1 | su postgres |
三、通用操作
修改密码
yum安装postgresql,默认会建一个名为”postgres”的系统账号,用于执行PostgreSQL;
1 | su - postgres |
切换用户后,提示符变更为“-bash-4.2$”; #同时数据库中也会生成一个名为”postgres”的数据库用户,且密码已自动生成;
PostgreSQL在数据库用户同名的系统账号下登录免密;进入数据库后修改密码;
1 | -bash-4.2$ psql -U postgres |
配置文件中,添加访问(/usr/local/pgsql/data/postgresql.conf)
修改listen_addresses = ‘localhost’为listen_addresses = ‘*’,允许所有远程访问;
修改配置文件需要重启服务。
手动修改的时候,可能配置文件会有点长,在命令行模式下输入/listen_addresses 回车,就可以找到了。
1 | [root@p~]# sed -i "s|#listen_addresses = 'localhost'|listen_addresses = '*'|g" /var/lib/pgsql/10/data/postgre |
修改data/pg_hba.conf
trust的意思是用账户密码登录。
1 | # "local" is for Unix domain socket connections only |
四、防火墙操作
1 | 1. 查看防火墙是否关闭:firewall-cmd --state |
https://www.jianshu.com/p/ee4ee15d3658
五、安装pgdmin4 web客户端
(我刚开始装的时候找个资料真的难)
打开下载链接:https://www.postgresql.org/ftp/
或者https://www.pgadmin.org/download/pgadmin-4-rpm/
建议直接选择rpm安装,简单省事。
1 | yum list |grep pgadmin4 |
因为我用过web,也不知道安装哪一个,干脆装个web(然后就装了好大一堆东西,一大堆pgadmini4的python依赖)。
1 | yum install -y pgadmin4-web.noarch |
安装之后的路径在:/usr/lib/python2.7/site-packages/pgadmin4-web/ 打开pgadmin4
1 | cd /usr/lib/python2.7/site-packages/pgadmin4-web/ |
初次配置pgadmin4:设置邮箱/密码(登录用)
访问pgadmin4:http://localhost:5050
启动很麻烦?写个脚本就好了
(脚本能用!想关闭的话,ps -ef |grep pgadmin4 kill -9 +上面列出的第一个数字)
1 | cd /usr/lib/python2.7/site-packages/pgadmin4-web/ |
命令行登录
1 | $ psql -U dbuser -d exampledb |
登录后的权限操作参考
https://blog.csdn.net/u010166404/article/details/53188882
其实很多初学者也不一定看的懂。。
1 | -- 连接命令(最后加上<filepath 就是还原命令,最后说) |
常用的控制台命令
1 | \password 设置密码 |
常用的SQL语句
1 | # 创建新表 |
备份和恢复
1 | $ pg_dump --format=t -d db_name -U user_name -h 127.0.0.1 -O -W > dump.sql |
分布式事物
XA是open group提出的分布式事务处理规范,JTA支持XA规范,JTA只规定了接口,有些应用容器提供实现,也有一些三方的开源实现可用,比如Atomikos。
如果PostgreSQL参与分布式事务(XA)处理,则需要在配置文件postgres.conf中设置参数,此参数用于指定分布式事务中两步提交准备事务的最大数量。默认值为0,此时不支持分布式事务。
max_prepared_transactions参数值不应该小于max_connections参数值,这样每一个session都可以至少有一个可用的准备事务。
1 | max_connections = 100 |