debian源码安装postgresql-12
1.配置数据源
vim /etc/apt/sources.list
#阿里云数据源
deb http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib
2.更新数据源
apt-get update
3.下载源码安装包
#下载源码包(在任意位置下载,安装完成后可以删除安装包)
https://www.postgresql.org/ftp/source/v12.6/
4.解压
cd /usr/local
tar zxvf postgresql-12.6.tar.gz
5.设置安装目录
#进入解压后的目录下
cd /usr/local/postgresql-12.6
#configure编译 --prefix:指定安装的路径,一般都是/usr/local/pgsql
#如果没有pgsql
mkdir /usr/local/pgsql
#指定安装路径
./configure --prefix=/usr/local/pgsql/
6.根据情况下载缺少依赖
#安装C编译器
apt-get install build-essential
#查看是否安装成功
gcc --version
#下载readline
apt-get install libreadline-dev
#下载zlib
apt-get install zlib1g-dev
#下载完成后重新安装
7.编译和安装(需要一些时间)
make
make install
8.创建用户(已存在则不需要)
adduser postgres
9.创建库目录并修改权限
mkdir -p /home/data/postgres && chown -R postgres:postgres /home/data/postgres
10.初始化数据库目录
su postgres -c "/usr/local/pgsql/bin/initdb -D /home/data/postgres"
#如果报错:initdb: error: invalid locale settings; check LANG and LC_* environment variables
#安装locale-gen工具
apt-get install locales
#生成所需要的语言环境
locale-gen en_US.UTF-8
#查看是否有 en_US.UTF-8 内容
cat /etc/locale.gen | grep en_US.UTF-8
#去掉 en_US.UTF-8 前面的#号注释
vim /etc/locale.gen
#重新生成本地化文件
locale-gen
#查看是否有 en_US.utf8 该项内容
locale -a
localedef --list-archive
#设置编码格式,选择en_US.utf8 utf8
dpkg-reconfigure locales
11.启动数据库
su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -D /home/data/postgres"
12.验证版本
su - postgres -c "/usr/local/pgsql/bin/psql -c 'SELECT version();'"
13.远程连接(默认情况下只允许本地访问)
13.1.开放访问权限
vim /home/data/postgres/pg_hba.conf
#追加一行(通过MD5进行登陆密码校验):
host all all 0.0.0.0/0 md5
13.2.开放全地址监听(还可通过此文件配置端口、连接数,数据库时区等)
vim /home/data/postgres/postgresql.conf
#找到下方命令将注释释放
listen_addresses = '*'
#修改时区
log_timezone = 'PRC'
timezone = 'PRC'
#修改最大连接数
max_connections = 500
13.3.为用户设置密码
su - postgres -c "/usr/local/pgsql/bin/psql -c \"alter user postgres with password 'ZDKN2023';\""
13.4.重启服务
su - postgres -c "/usr/local/pgsql/bin/pg_ctl restart -D /home/data/postgres"
14设置开机自启动
14.1.进入postgresql数据库开机自启动脚本位置
cd /usr/local/postgresql-12.6/contrib/start-scripts
14.2.将linux文件复制到 /etc/init.d 目录下,并且将其重名为postgresql
cp linux /etc/init.d/postgresql
14.3.进入 /etc/init.d 目录下,修改postgresql文件
cd /etc/init.d/
#将prefix设置为postgresql的安装路径:/usr/local/pgsql
#将PGDATA设置为postgresql的数据目录路径:/home/data/postgres
vim postgresql
14.4.添加开机权限
chmod +x postgresql
14.5.安装sysv-rc-conf管理服务启动项
apt-get install sysv-rc-conf
#运行sysv-rc-conf,查看在各个系统运行级别的服务启动项是否开启
#1,2(系统默认运行级别),3,4,5(当前系统运行级别)均为开机启动,空格选择,Q退出
sysv-rc-conf
14.6.设置完成重启测试
reboot
#查看服务状态
systemctl status postgresql