操作流程 下载安装 sudo apt-get -y updatesudo apt-get -y upgradesudo apt-get install -y libicu-devcd /usr/local/softwarewget https://ftp.postgresql.org/pub/source/v17.9/postgresql-17.9.tar.gztar -zxvf postgresql-*.tar.gzrm -rf postgresql-*.tar.gzmv postgresql* postgresqlmkdir -p /usr/local/software/postgresql/data/{ pgsql,pgdata,pglog,tmp} chmod 0777-R /usr/local/software/postgresql/data/{ pgsql,pglog,tmp} chmod 700 -R /usr/local/software/postgresql/data/pgdata# 创建postgres 用户 groupadd postgresuseradd -m postgres-g postgreschown postgres:postgres-R /usr/local/software/postgresql /usr/local/software/postgresql/data/{ pgsql,pgdata,pglog,tmp} cd /usr/local/software/postgresql ./configure--prefix = /usr/local/software/postgresql/data/pgsqlmake -j$( nproc) && make install -j$( nproc) useradd -g postgres-s /usr/local/software/postgresql postgresuseradd -g postgres-s /usr/local/software/postgresql/data/pgsql postgresuseradd -g postgres-s /usr/local/software/postgresql/data/pgdata postgresuseradd -g postgres-s /usr/local/software/postgresql/data/pglog postgresuseradd -g postgres-s /usr/local/software/postgresql/data/tmp postgres配置 # 初始化数据库 sudo -u postgres /usr/local/software/postgresql/data/pgsql/bin/initdb-D /usr/local/software/postgresql/data/pgdatacat >> /usr/local/software/postgresql/data/pgdata/postgresql.conf<< 'EOF' ### 开启远程访问 listen_addresses = '*' port = 5432 unix_socket_directories = '/usr/local/software/postgresql/data/tmp' EOF cat >> /usr/local/software/postgresql/data/pgdata/pg_hba.conf<< 'EOF' ### 信任远程连接 host all all 10.3.11.173/24 md5 EOF # 启动数据库 sudo -u postgres /usr/local/software/postgresql/data/pgsql/bin/pg_ctl start-D /usr/local/software/postgresql/data/pgdata-l /usr/local/software/postgresql/data/pglog/logfile# 重启数据库 # sudo -u postgres /usr/local/software/postgresql/data/pgsql/bin/pg_ctl restart -D /usr/local/software/postgresql/data/pgdata -l /usr/local/software/postgresql/data/pglog/logfile # 停止数据库: #sudo -u postgres /usr/local/software/postgresql/data/pgsql/bin/pg_ctl stop -D /usr/local/software/postgresql/data/pgdata -l /usr/local/software/postgresql/data/pglog/logfile # 强制重启: # sudo -u postgres /usr/local/software/postgresql/data/pgsql/bin/pg_ctl restart -D /usr/local/software/postgresql/data/pgdata -l /usr/local/software/postgresql/data/pglog/logfile -m f # 强制停止 # sudo -u postgres /usr/local/software/postgresql/data/pgsql/bin/pg_ctl stop -D /usr/local/software/postgresql/data/pgdata -l /usr/local/software/postgresql/data/pglog/logfile -m f # 加载配置 # sudo -u postgres /usr/local/software/postgresql/data/pgsql/bin/pg_ctl reload -D /usr/local/software/postgresql/data/pgdata -l /usr/local/software/postgresql/data/pglog/logfile # 显示服务状态 # sudo -u postgres /usr/local/software/postgresql/data/pgsql/bin/pg_ctl status -D /usr/local/software/postgresql/data/pgdata -l /usr/local/software/postgresql/data/pglog/logfile cat >> /etc/profile<< "EOF" #set postgresql environment PGHOME=/usr/local/software/postgresql/data/pgsql PGINCLUDE=/usr/local/software/postgresql/data/pgsql/include PGLIB=/usr/local/software/postgresql/data/pgsql/lib PGREDIST=/usr/local/software/postgresql/data/pgsql/bin PGDATA=/usr/local/software/postgresql/data/pgdata PATH=$PGHOME:$PGINCLUDE:$PGLIB:$PGREDIST:$PGDATA:$PATH: export PGHOME PGINCLUDE PGLIB PGREDIST PGDATA PATH EOF source /etc/profile# 设置开机自启动 cat > /etc/systemd/system/postgresql.service<< 'EOF' [Unit] Description=PostgreSQL database server After=network.target [Service] Type=forking User=postgres Group=postgres ExecStart=sudo -u postgres /usr/local/software/postgresql/data/pgsql/bin/pg_ctl start -D /usr/local/software/postgresql/data/pgdata -l /usr/local/software/postgresql/data/pglog/logfile ExecStop=sudo -u postgres /usr/local/software/postgresql/data/pgsql/bin/pg_ctl stop -D /usr/local/software/postgresql/data/pgdata -l /usr/local/software/postgresql/data/pglog/logfile -m f ExecReload=sudo -u postgres /usr/local/software/postgresql/data/pgsql/bin/pg_ctl restart -D /usr/local/software/postgresql/data/pgdata -l /usr/local/software/postgresql/data/pglog/logfile -m f [Install] WantedBy=multi-user.target EOF chmod 0777-R /etc/systemd/system/postgresql.service /usr/local/software/postgresql/data/{ pgsql,pglog,tmp} chmod 700 -R /usr/local/software/postgresql/data/pgdatachown postgres:postgres-R /usr/local/software/postgresql/data/{ pgsql,pgdata,pglog,tmp} systemctl daemon-reload systemctlenable --now postgresql systemctlenable postgresql.service systemctl stop postgresql.service systemctl start postgresql.service systemctl status postgresql.servicesudo ufw allow5432 sudo ufw reloadsudo netstat -tunlp | grep 22 测试 # 连接数据库 psql-h 127.0 .0.1-U postgres-p 5432 -d postgres-W -- 修改密码 ALTER ROLE postgresWITH PASSWORD'postgres' ; -- 创建专用用户 CREATE USER anythingllmWITH PASSWORD'QwE@123@*~*' ; ALTER USER "anythingllm" with superuser; GRANT ALL PRIVILEGES ON SCHEMA PUBLIC TO "anythingllm" ; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA PUBLIC TO "anythingllm" ; -- 赋予用户操作数据库的限 CREATE DATABASE vector_db; ALTER DATABASE "vector_db" OWNERTO "anythingllm" ; GRANT ALL PRIVILEGES ON DATABASE "vector_db" TO "anythingllm" ;