# 联网环境下安装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;