最近迷上了pgsql,发现比mysql强大太多
二进制安装过程:
预先创建好postgres账户:
group add postgres
useradd postgres -g postgres
修改密码
1、下载:
wget https://get.enterprisedb.com/postgresql/postgresql-10.7-1-linux-x64-binaries.tar.gz
2、解压缩:
tar -zxf postgresql-10.7-1-linux-x64-binaries.tar.gz
mv pgsql /usr/local/pgsql
3、创建pgsql的数据目录:
mkdir -p /usr/local/pgsql/data
4、授权:
chown -R postgres:postgres /usr/local/pgsql
5、初始化pgsql的数据库:
cd /usr/local/pgsql/bin
./initdb -D /usr/local/pgsql/data 这里指定的是前面创建的pgsql的数据目录
6、启动:
./pg_ctl -D /usr/local/pgsql/data/ start
7、进入命令行:
./psql -Upostgres
配置:
pgsql用的配置文件在数据目录下,名字叫做:postgresql.conf
一般配置:
listen_addresses:监听地址
port:监听端口
max_connections:最大连接数
superuser_reserved_connections:超级用户的连接数
unix_socket_directories:在Unix机器上socket文件所在位置,是个隐藏文件
unix_socket_permissions:socket文件权限
authentication_timeout:验证超时报错
password_encryption:密码验证方式
shared_buffers:pgsql工作内存分配,一般在初始化的时候会自动设置好的,一般为物理内存的25%左右,因为pgsql是可以利用OS缓存的,为了避免二次缓存,设置为25%合适
huge_pages:pgsql默认每页8K大小,在数量非常多的时候,会影响CPU检索效率,所以这时候需要增大也的大小。
temp_buffers:临时缓冲区,用来缓冲临时表
work_mem:用来作排序和哈希操作的缓存
maintenance_work_mem:针对数据库维护语句,如创建删除索引等
autovacuum_work_mem:自动回收硬盘空间,最小1MB,如果是-1,那么使用maintenance_work_mem设置的值
max_stack_depth:服务器执行堆栈的最大安全深度
temp_file_limit:单个进程的临时文件限制
常用命令:
\l :查看数据库列表
\du:查看用户
\dt:查看表
\d:查看表结构
\c:切换数据库
\di: 查看索引
\c - user:切换用户