# 联网环境下安装pg

# 安装pg数据库过程

  • 安装pg
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql15-server
  • 初始化数据库
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
  • 启动服务
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
  • 配置访问权限
vim /var/lib/pgsql/15/data/postgresql.conf
# 修改监听地址 
update listen_addresses = '*'

vim /var/lib/pgsql/15/data/pg_hba.conf
# 添加以下内容
ADD host    all             all             0.0.0.0/0               md5
  • 重启服务
systemctl restart postgresql-15
  • 修改密码
su  postgres 
psql
ALTER USER postgres WITH PASSWORD 'postgres';

# 安装pg插件过程

#在前文的基础上,直接运行即可安装成功
yum install pgvector_15 -y

# 安装uuid-ossp插件

#在前文的基础上,直接运行即可安装成功
yum install postgresql15-contrib -y

# 重启失败的问题排查

  • 重启之后,一般会遇到data权限的问题,执行:chmod 700 /var/lib/pgsql/15/data即可

# pg15.8挖矿木马程序处理

  • 使用官方源,安装后会出现挖矿程序,使用如下命令删除:top -u postgres, 将进程启动命令为:cpu_hu的进程杀掉;
  • 删除木马文件(必须要删除,不能mv弄成备份bak,弄成bak备份文件,还是会自动执行):
rm -rf  /var/lib/pgsql/15/data/log/cpu_hu 
rm -rf  /var/lib/pgsql/15/data/pg_wal/archive_status/cpu_hu
rm -rf /var/lib/pgsql/15/data/pg_serial/cpu_hu
  • 由于cpu_hu删掉之后,会自动新建,并且启动应用,必须要执行下方的内容;删除/var/lib/pgsql/15/data/base下的内容;
  • /var/lib/pgsql/15/data/base目录下的4文件夹删除,这个数字根据进程命令来看,将单个数字的直接删除。

# pg数据库离线环境安装

# 安装pg数据库步骤

useradd postgres

#从官网里面下载
tar -xvf postgresql-14.5.tar.gz 

cd postgresql && mkdir build && cd build

../configure --prefix=/usr/local/pgsql --without-readline

make -j4
make install

mkdir -p /usr/local/pgsql/data

chown -R postgres:postgres /usr/local/pgsql

su postgres

vim ~/.bash_profile
#添加
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/local/pgsql/bin;
export PGHOME=/usr/local/pgsql
export PGDATA=/usr/local/pgsql/data

soruce  ~/.bash_profile

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
#需要pgsql目录下执行,logfile会放在当前目录,不然没有权限
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

vim /usr/local/pgsql/data/postgresql.conf
#取消 listen_addresses 的注释,将参数值改为“*”

vim /usr/local/pgsql/data/pg_hba.conf
#添加下方的配置
host    all             all             0.0.0.0/0            md5

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile stop
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

/usr/local/pgsql/bin/psql

ALTER USER postgres WITH PASSWORD 'automannn!';
  • 以上已经安装完成;

# 安装uuid插件

下载 https://mirrors.aliyun.com/centos-vault/7.6.1810/os/x86_64/Packages/uuid-devel-1.6.2-26.el7.x86_64.rpm

sudo yum -y install e2fsprogs-devel uuid uuid-devel libuuid-devel

sudo rpm -ivh uuid-devel-1.6.2-26.el7.x86_64.rpm

#这个是在pgsql的源码目录执行
# 已安装PG后,把uuid-ossp编译安装进PG,不影响现有库,在build目录下执行
sudo ../configure --prefix=/usr/local/pgsql --with-uuid=e2fs --without-readline

#在build的contrib目录里面操作
cd ./contrib/uuid-ossp

make & make install

# 安装pgvector插件

# 将pgvector的包上传并解压
# 执行下方命令的用户,需要当前上下文中,需要具有 PGHOME与 PGDATA变量及权限
#export PGHOME=/usr/local/pgsql
#export PGDATA=/usr/local/pgsql/data
#PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/local/pgsql/bin;
make
make install

# pg数据库参数调整

  • 默认情况下,pg数据库的最大连接数为100,生产环境通常需要调整(一个应用的连接数可能就有30或者50等);
-- 查看当前最大连接数
SHOW max_connections;
-- 查询剩余连接数
WITH current_connections AS (
    SELECT count(*) AS cc
    FROM pg_stat_activity
)
SELECT (CAST((SELECT setting FROM pg_settings WHERE name = 'max_connections') AS INT) - cc) AS remaining_connections
FROM current_connections;
  • 修改pg数据库参数
find / -name postgresql.conf
vim /var/lib/pgsql/15/data/postgresql.conf
# 修改参数
max_connections = 200 #默认为100
shared_buffers = 256MB #默认为128MB
  • 重启
#什么环境启动的,就用哪种方式重启
systemctl restart postgresql-15

# 联网环境下安装mysql5.7

rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community

yum install mysql-community-server -y --nogpgcheck

systemctl start mysqld

systemctl enable mysqld

#修改策略 /etc/my.cnf
[mysqld]
validate_password_policy=0
validate_password_length=8
validate_password_number_count=0
validate_password_special_char_count=0
validate_password_mixed_case_count=0

#查看密码强度策略
SHOW VARIABLES LIKE 'validate_password%';

#获取临时密码
grep 'temporary password' /var/log/mysqld.log

mysql -u root -p
# 输入密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'automannn';

#修改策略 /etc/my.cnf
[mysqld]
bind-address = 0.0.0.0

#授权远程用户登录
CREATE USER 'admin'@'%' IDENTIFIED BY 'automannn';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;