PostgreSQL01-安装
安装
安装更新源
yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
查看更新源
yum list | grep postgresql
安装postgresql
yum install -y postgresql10-contrib postgresql10-server
初始化数据库
默认安装目录 /usr/pgsql-10
默认数据目录 /var/lib/pgsql/10/data
/usr/pgsql-10/bin/postgresql-10-setup initdb
修改默认数据目录
mkdir -p /pgdata/10/{data,backups,scripts,archive_wals}
chown -R postgres:postgres /pgdata/10
chmod 0700 /pgdata/10/data
vim /usr/lib/systemd/system/postgresql-10.service
Environment=PGDATA=/pgdata/10/data
查看帮助
/opt/pgsql/bin/initdb --help
/opt/pgsql/bin/initdb -D /pgdata/10/data -W
使用pg_ctl初始化
/opt/pgsql/bin/pg_ctl init -D /pgdata/10/data/ -o "-W"
使用官方yum源安装PostgreSQL时会自动创建/var/lib/pgsql/10 目录和它的两个子目录:data和backups
通过 service postgresql-10 init 命令会初始化/var/lib/pgsql/lO/data 目录作为数据目录
这样很方便,但是可定制性并不好,建议按照上面的步骤初始化数据目录
启动数据库并设置开机自启
systemctl start postgresql-10
systemctl enable postgresql-10
提示信息
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-10.service to /usr/lib/systemd/system/postgresql-10.service.
登陆postgresql并设置密码
postgresql在安装时默认添加用户postgres
su – postgres
psql
设置密码
ALTER USER postgres WITH PASSWORD '密码';
修改配置文件
默认postgresql不支持远程登陆
如果修改过pgdata的路径,文件位置与路径一致
vim /var/lib/pgsql/10/data/pg_hba.conf
原文件
修改后文件
vim /var/lib/pgsql/10/data/postgresql.conf
原文件
修改后文件
重启postgresql
systemctl restate postgresql-10
卸载
rpm -qa | grep postgresql
这个包被其他包依赖,卸载它,其他包也会被卸载
yum remove postgresql10-libs-10.13-1PGDG.rhel7.x86_64
rm -f /etc/init.d/postgresql-10
源码安装
准备编译环境
yum groupinfo "Development tools"
yum grouplist "Development tools"
yum install -y bison flex readline-devel zlib-devel
groupadd postgres
useradd postgres -g postgres
mkdir -p /var/lib/pgsql/9.6/data
chown -R postgres:postgres /var/lib/pgsql/9.6/data
# 参考
pg_root 目录存放数据文件
pg_tbs 存放用户自定义表空间
设置postgres用户环境变量
vim /home/postgres/.bash_profile
export PGPORT=5432
export PGUSER=postgres
export PGDATA=/var/lib/pgsql/9.6/data
export LANG=en_US.utf8
export PGHOME=/usr/local/psql9.6
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
安装
wget https://ftp.postgresql.org/pub/source/v10.0/postgresql-10.0.tar.gz
tar zxf postgresql-10.0.tar.gz
cd postgresql-10.0
./configure \
--prefix=/usr/local/pgsql9.6 \
--without-readline
make && make install
# 参考
gmake world
gmake install-world
安装,centos6.4开始,不支持这两个库,依据实际情况选择安装
./configure --without-readline --without-zlib
其他选项
--with-blocksize=BLOCKSIZE :指定数据文件的块大小,默认的是8K,在OLAP场景下可适当增至32K,OLTP场景下建议使用8K
--with-segsize=SEGSIZE :指定单个数据文件的大小,默认是1GB
--with-wal-blocksize=BLOCKSIZE :指定 WAL 文件的块大小,默认是 8kB
--with-wal-segsize=SEGSIZE :指定单个 WAL 文件的大小,默认是 16MB
这4个参数只能在编译的时候指定,所以在修改它们之前,请提前做好规划和严格的测试,否则后期想再做调整 ,只能将数据导出重新导人
初始化数据库
su - postgres
initdb -D /var/lib/pgsql/9.6/data -W
数据库启停
pg_ctl start/stop
使用pg_ctl管理数据库启停
su - postgres
启动/运行状态/停止
/opt/pgsql/bin/pg_ctl -D /pgdata/10/data start/status/stop -m STOP_MODE
-D 指定停止的数据库
-m 指定停止模式(简写 -ms -mf -mi)
smart 模式会等待活动的事务提交结束,并等待客户端主动断开连接之后关闭数据库
fast 模式则会回滚所有活动的事务,并强制断开客户端的连接之后关闭数据库
immediate 模式立即终止所有服务器进程,当下一次数据库启动时它会首先进入恢复状态,一般不推荐使用
源码服务开机自启
yum安装的话,自动生成脚本,源码安装需要手动配置
拷贝源码脚本并重命名
cp /opt/postgresql-10.0/contrib/start-scripts/linux /etc/init.d/postgresql-10
chmod +x /etc/init.d/postgresql-10
chkconfg postgresql-10 on
checkconfig --list | grep postgresql-10
FAQ
常见错误解决方法
使用yum安装更新源时出现Loaded plugins: fastestmirror
解决办法:
1.修改插件配置文件
vim /etc/yum/pluginconf.d/fastestmirror.conf
[main]
enabled=0 //由 1 改成0 ,禁用该插件
2.修改yum 配置文件
vim /etc/yum.conf
plugins=0 //不使用插件
3.清除缓存并重新构建yum 源
yum clean all
yum makecache
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了