1.安装postgresql
#两种方式安装:
①wget https://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.gz(不推荐,下载非常慢)
②https://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.gz
打开链接下载至本地,再通过winscp等软件上传至服务器(我上传到了/home目录下)
#安装依赖包
yum install -y cmake gcc gcc-c++ perl readline readline-devel openssl openssl-devel zlib zlib-devel ncurses-devel readline readline-devel zlib zlib-devel
#切换到上传目录,解压
cd /home
tar -zxvf postgresql-12.2.tar.gz
#然后你就可以看到一个postgresql-12.2的文件夹,用起来不方便,重命名
mv postgresql-12.2 postgresql
#配置安装目录,编译安装
cd /home/postgresql
./configure --prefix=/usr/local/pgsql
make && make install
2.创建postgres用户
这里又有很多坑。。。。。
1.创建用户密码
useradd postgres
passwd postgres
创建完会在home目录下有个postgres目录(之前就是不知道,然后把它删了,一直提示烦死了!)
后面还遇到过su - postgres失败,root下无法切换到这个普通用户,删了重建,重新赋予后面提到的权限就可以了
#删除用户
把postgres目录删除(别看错啊!不是带sql的那个)
/var/spool/mail/这个目录下的postgres也要删除!!
创建需要用到的目录
mkdir /usr/local/pgsql/data
mkdir /usr/local/pgsql/tmp
mkdir /usr/local/pgsql/log
#把data目录设置postgres组
chown -R postgres:postgres /usr/local/pgsql/data
设置postgres用户的环境变量
vim /home/postgres/.bash_profile
export PGHOME=/usr/local/pgsql
export PGDATA=/usr/local/pgsql/data
export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
保存以后记得source更新
注意:PATH必须放最后(反正之前吃过这个坑,没放最后是没生效的)
3.初始化数据库(在postgres用户下)
初始化
initdb
然后就可以发现目录下多了很多文件
#修改默认的配置
vim /usr/local/pgsql/data/postgresql.conf
#数据目录
data_directory='/usr/local/pgsql/data'
#客户端可连接ip,默认为localhost,若不需要可不修改,*为所有
listen_addresses = '*'
#端口设置,我设置 5000,记得开放端口不然后面不给连接
port = 5000
unix_socket_directories = '/usr/local/pgsql/tmp'
unix_socket_group = ''
unix_socket_permissions = 0777
#内存大小
shared_buffers = 128MB
#时区修改
timezone = 'Asia/Shanghai'
#是否开启日志
logging_collector = on
#日志存放目录
log_directory ='/usr/local/pgsql/log'
#每个日志最大
size log_rotation_size = 20MB
#日志时区
log_timezone = 'Asia/Shanghai'
#记录执行时间大于100ms的sql及执行时间,相当于慢SQL日志
log_min_duration_statement = 100
上面修改的地方有些需要取消注释!我之前就是有几个地方忘了客户端就无法连接!!
连接数据库
pg_ctl start
如果有报错,把data父目录也赋予postgres组(无需递归)
psql -h 127.0.0.1 -p 5000 -U postgres
#修改postgres用户的密码
postgres=# \password postgres
Enter new password:
Enter it again:
#创建数据库
create database register;
create database notarysigner;
create database notaryserver;
数据库开启自启(root用户下操作)
PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下
1)修改linux文件属性,添加X属性
chmod a+x linux
2)复制linux文件到/etc/init.d目录下,更名为postgresql
cp linux /etc/init.d/postgresql
3)修改/etc/init.d/postgresql文件的两个变量(前面配过的话这里不需要改)prefix设置为postgresql的安装路径,PGDATA设置为postgresql的数据目录路径:
4) 启动并开启自启
service postgresql
start chkconfig --add postgresql
4.修改harbor配置
配置文件修改
vim harbor.yml
找到这个external_database(需要放开注释)
注意格式对齐,冒号后面是有空格的,IP改成你自己的
和上面创建的数据库对应
external_database:
harbor:
host: IP
port: 5000
db_name: harbor
username: postgres
password: 042622
ssl_mode: disable
max_idle_conns: 50
max_open_conns: 100
notary_signer:
host: IP
port: 5000
db_name: notarysigner
username: postgres
password: 042622
ssl_mode: disable
max_idle_conns: 50
max_open_conns: 100
notary_server:
host: IP
port: 5000
db_name: notaryserver
username: postgres
password: 042622
ssl_mode: disable
max_idle_conns: 50
max_open_conns: 100
有些教程需要改docker-compose.yml,看了一遍感觉不需要
执行sh install.sh
(./install.sh 不行,会有报错)
其他配置
如果数据库和服务不在同一台电脑,需要配置pg_hba.conf
加一行host all postgres 0.0.0.0/0 trust
5.测试
客户端连接测试
我是用navicat工具连接的
这里就连接成功
harbor和psql的连接测试
如果启动harbor的话数据库会有相应表。。但是不会写sql非常尴尬。。。教程只有在命令行输入的。。。
psql -h 127.0.0.1 -p 5000 -U postgres
进入数据库
\c 数据库名
#查看该库有什么表
\dt
到这里就基本完成了。。。。欢迎分享~
对你有帮助的话三连支持下呗~~