网易云音乐hd安卓版
226.97MB · 2025-09-23
在开始安装PostgreSQL之前,我们需要确认系统满足基本要求,并选择合适的版本,避免后续踩坑。
根据PostgreSQL 17官方文档(www.postgresql.org/docs/17/ins…
libreadline
(命令行历史)、zlib
(数据压缩)、openssl
(加密)),多数操作系统会预装这些库;PostgreSQL官网提供稳定版(当前为17)和开发版(18beta),初学者建议选择稳定版(www.postgresql.org/download/),…
PostgreSQL支持Windows、macOS、Linux三大主流系统,以下是各系统的详细安装流程(均基于官网17版文档)。
Windows系统推荐使用官方安装包(无需编译,步骤简单):
psql
等命令行工具);C:Program FilesPostgreSQL17
)和数据目录(默认C:Program FilesPostgreSQL17data
,建议非系统盘,如D:PostgreSQLdata
);postgres
用户,后续连接数据库的关键密码,务必记住);macOS推荐使用Homebrew(包管理器,无需手动配置路径)或官方安装包:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install postgresql@17
initdb /usr/local/var/postgresql@17 --locale=en_US.UTF-8 # 设置UTF-8编码
brew services start postgresql@17
/Library/PostgreSQL/17/bin/initdb /Library/PostgreSQL/17/data --locale=en_US.UTF-8
sudo /Library/PostgreSQL/17/bin/pg_ctl -D /Library/PostgreSQL/17/data start
Linux系统推荐使用包管理器(apt/yum),无需手动编译,以下以Ubuntu 22.04和CentOS 9为例:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql-17
sudo systemctl status postgresql-17 # 查看状态(active为正常)
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf install postgresql17-server
sudo /usr/pgsql-17/bin/postgresql-17-setup initdb
sudo systemctl start postgresql-17 # 启动服务
sudo systemctl enable postgresql-17 # 开机自启
安装完成后,需配置环境变量(让psql
等命令全局可用)和服务管理(控制数据库启动/停止)。
psql
等命令位于PostgreSQL的bin
目录下,需将该目录添加到系统PATH
中:
C:Program FilesPostgreSQL17bin
(替换为你的安装路径);psql --version
(显示版本号则成功)。~/.zshrc
(若用bash则编辑~/.bash_profile
):
vi ~/.zshrc
bin
目录路径):
export PATH="/usr/local/opt/postgresql@17/bin:$PATH"
source ~/.zshrc
psql --version
。/etc/profile
(系统级,所有用户可用)或~/.bashrc
(用户级):
sudo vi /etc/profile
bin
目录路径):
export PATH="/usr/lib/postgresql/17/bin:$PATH" # Ubuntu路径
# export PATH="/usr/pgsql-17/bin:$PATH" # CentOS路径
source /etc/profile
psql --version
。PostgreSQL以系统服务形式运行,以下是各系统的服务管理命令:
系统 | 启动服务 | 停止服务 | 查看状态 | 开机自启 |
---|---|---|---|---|
Windows | net start postgresql-x64-17 | net stop postgresql-x64-17 | sc query postgresql-x64-17 | 安装时默认开启 |
macOS(Homebrew) | brew services start postgresql@17 | brew services stop postgresql@17 | brew services list | brew services start postgresql@17 (自动开机) |
Linux(systemd) | sudo systemctl start postgresql-17 | sudo systemctl stop postgresql-17 | sudo systemctl status postgresql-17 | sudo systemctl enable postgresql-17 |
安装完成后,需验证数据库是否正常运行,步骤如下:
连接数据库:打开终端,执行
psql -U postgres # -U指定用户(postgres是超级用户)
输入安装时设置的postgres
密码,成功后会看到postgres=#
提示符(表示已连接到默认数据库postgres
)。
创建测试数据库:
CREATE DATABASE testdb; -- 创建名为testdb的数据库(分号是SQL语句结束符)
切换数据库:
c testdb -- 切换到testdb,提示符变为testdb=#
创建测试表并插入数据:
CREATE TABLE users (
id SERIAL PRIMARY KEY, -- 自增主键
name VARCHAR(50) NOT NULL -- 姓名(非空)
);
INSERT INTO users (name) VALUES ('Alice'); -- 插入一条数据
查询数据:
SELECT * FROM users; -- 查询users表所有数据
输出结果: id | name ----+------- 1 | Alice (1 row)
退出psql:
q -- 退出命令行工具
答案解析:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
;sudo dnf install postgresql17-server
;sudo /usr/pgsql-17/bin/postgresql-17-setup initdb
;sudo systemctl start postgresql-17
;sudo systemctl enable postgresql-17
。psql
提示「不是内部或外部命令」,怎么办?答案解析:
原因是psql
所在的bin
目录未添加到PATH
环境变量。解决步骤:
PostgreSQL17bin
目录路径(如C:Program FilesPostgreSQL17bin
);psql --version
验证。以下是安装/配置过程中高频报错的原因分析和解决办法(官网错误文档:www.postgresql.org/docs/17/err…
psql: FATAL: role "postgres" does not exist
原因:PostgreSQL未初始化数据库,导致默认的postgres
角色(超级用户)不存在。
解决:
initdb /usr/local/var/postgresql@17 --locale=en_US.UTF-8
;sudo pg_createcluster 17 main --start
(创建数据库集群)。could not connect to server: Connection refused
原因:数据库服务未启动、端口被占用或防火墙阻止连接。
解决:
systemctl status postgresql-17
),未启动则启动;netstat -tuln | grep 5432
(Windows用netstat -ano | findstr :5432
),若被占用则修改postgresql.conf
中的port
参数(如改为5433),重启服务;sudo ufw allow 5432
(Ubuntu),Windows在防火墙中添加5432端口的入站规则。password authentication failed for user "postgres"
原因:密码错误,或pg_hba.conf
文件的认证方式设置不当。
解决:
pg_hba.conf
文件(路径:WindowsC:Program FilesPostgreSQL17datapg_hba.conf
;Linux/var/lib/postgresql/17/main/pg_hba.conf
);local all postgres peer
改为local all postgres trust
(临时允许无密码登录);psql -U postgres
(无密码登录),重置密码:ALTER USER postgres WITH PASSWORD 'new_password';
;pg_hba.conf
中的认证方式(改回peer
或scram-sha-256
),重启服务。