PostgreSQL 基本维护
本文提供 PostgreSQL 的安装、启停、卸载、用户管理、库表创建及一些基本维护操作的指引,帮助你直接上手 PostgreSQL 数据库的应用与管理。
安装 PostgreSQL 15
针对不同的操作系统,安装、启动、停止和卸载 PostgreSQL 的方法虽然基本相似,但会有一些细微差异。以下是不同系统上的详细指南:
macOS(14.6)
使用 Homebrew 安装(推荐)
- 安装 Homebrew,如果你还没有安装 Homebrew,可以在终端运行以下命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 安装 PostgreSQL 15,使用 Homebrew 安装 PostgreSQL:
brew install postgresql@15
安装完成提示:
This formula has created a default database cluster with:
initdb --locale=C -E UTF-8 /opt/homebrew/var/postgresql@15
For more details, read:
https://www.postgresql.org/docs/15/app-initdb.html
postgresql@15 is keg-only, which means it was not symlinked into /opt/homebrew,
because this is an alternate version of another formula.
If you need to have postgresql@15 first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/postgresql@15/bin:$PATH"' >> ~/.zshrc
For compilers to find postgresql@15 you may need to set:
export LDFLAGS="-L/opt/homebrew/opt/postgresql@15/lib"
export CPPFLAGS="-I/opt/homebrew/opt/postgresql@15/include"
For pkg-config to find postgresql@15 you may need to set:
export PKG_CONFIG_PATH="/opt/homebrew/opt/postgresql@15/lib/pkgconfig"
To start postgresql@15 now and restart at login:
brew services start postgresql@15
Or, if you don't want/need a background service you can just run:
LC_ALL="C" /opt/homebrew/opt/postgresql@15/bin/postgres -D /opt/homebrew/var/postgresql@15
- 启动 PostgreSQL,安装完成后,可以启动 PostgreSQL 服务:
brew services start postgresql@15
或者手动启动:
pg_ctl -D /opt/homebrew/var/postgresql@15 start
- 停止 PostgreSQL,如果需要停止 PostgreSQL 服务:
brew services stop postgresql@15
或者手动停止:
pg_ctl -D /opt/homebrew/var/postgresql@15 stop
- 卸载 PostgreSQL,如果需要卸载 PostgreSQL:
brew uninstall postgresql@15
从 PostgreSQL 官方下载
-
下载 PostgreSQL 安装包,从 PostgreSQL 官方网站下载适用于 macOS 的安装包,选择 PostgreSQL 15 并下载 appropriate .dmg 或 .pkg 文件后,按照安装向导执行安装过程。
-
启动 PostgreSQL,如果你通过官方包安装,可以使用以下命令启动服务(可能需要管理员权限):
sudo su - postgres
pg_ctl -D /var/lib/postgresql/data start
exit
或者通过 macOS 的 LaunchDaemon 启动:
sudo launchctl load -w /Library/LaunchDaemons/com.edb.launchd.postgresql-15.plist
- 停止 PostgreSQL,可以使用以下命令停止服务:
sudo su - postgres
pg_ctl -D /var/lib/postgresql/data stop
exit
或者通过 macOS 的 LaunchDaemon 停止:
sudo launchctl unload -w /Library/LaunchDaemons/com.edb.launchd.postgresql-15.plist
- 卸载 PostgreSQL,找到 PostgreSQL 安装包中提供的卸载脚本,通常位于安装目录,执行以下命令进行卸载:
sudo /Library/PostgreSQL/15/uninstall-postgresql
验证安装
无论通过哪种方法安装 PostgreSQL,都可以通过以下命令检查 PostgreSQL 是否正确安装及其版本:
psql --version
注意事项
- 权限:有些操作可能需要超用户权限(例如使用
sudo
)。 - 路径:根据你的具体安装情况,PostgreSQL 数据目录的路径可能会有所不同。确保使用正确的路径来管理 PostgreSQL 服务。
- 环境变量:安装后可能需要将 PostgreSQL 的二进制目录添加到你的环境变量中,如
$PATH
。可以在~/.zshrc
或~/.bash_profile
中进行配置:export PATH="/usr/local/opt/postgresql@15/bin:$PATH"
Debian 系统
安装 PostgreSQL
sudo apt update
sudo apt install postgresql postgresql-contrib
启动 PostgreSQL
sudo systemctl start postgresql
sudo systemctl enable postgresql # 开机启动
停止 PostgreSQL
sudo systemctl stop postgresql
卸载 PostgreSQL
sudo apt remove postgresql postgresql-contrib
sudo apt purge postgresql postgresql-contrib
sudo apt autoremove
CentOS 7
安装 PostgreSQL
添加 PostgreSQL 仓库并安装:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-centos13-13-2.noarch.rpm
sudo yum install -y postgresql13-server postgresql13-contrib
初始化 PostgreSQL 数据库并启动服务:
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl start postgresql-13
sudo systemctl enable postgresql-13 # 开机启动
停止 PostgreSQL
sudo systemctl stop postgresql-13
卸载 PostgreSQL
sudo yum remove postgresql13-server postgresql13-contrib
sudo rm -rf /var/lib/pgsql/13/data /var/lib/pgsql/13/backups
CentOS 8
安装 PostgreSQL
添加 PostgreSQL 仓库并安装:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf install -y postgresql13-server postgresql13-contrib
初始化 PostgreSQL 数据库并启动服务:
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl start postgresql-13
sudo systemctl enable postgresql-13 # 开机启动
停止 PostgreSQL
sudo systemctl stop postgresql-13
卸载 PostgreSQL
sudo dnf remove postgresql13-server postgresql13-contrib
sudo rm -rf /var/lib/pgsql/13/data /var/lib/pgsql/13/backups
Windows 11
安装 PostgreSQL
从 PostgreSQL 官方网站下载 Windows 版本 并运行安装程序,按照向导提示进行安装。选择合适的安装目录,并记住你设置的数据库超级用户(通常是 postgres
)的密码。
启动 PostgreSQL
安装程序会自动启动 PostgreSQL 服务。如果你需要手动启动,可以通过 Windows 服务管理器:
- 打开任务管理器,切换到“服务”选项卡,点击“打开服务”。
- 在服务列表中找到
PostgreSQL
。 - 右键点击选择“启动”。
停止 PostgreSQL
通过 Windows 服务管理器停止服务:
- 在服务列表中找到
PostgreSQL
。 - 右键点击选择“停止”。
卸载 PostgreSQL
- 打开“控制面板”。
- 选择“程序和功能”。
- 在列表中找到 PostgreSQL,右键点击选择“卸载”。
- 按照卸载向导完成卸载过程。
常用操作
检查数据库状态
通过以下命令检查 PostgreSQL 服务的状态:
brew services info postgresql@15 # 使用 Homebrew 安装时
初次连接 PostgreSQL
用 psql
客户端连接到默认的 postgres
数据库:
psql postgres
修改初始密码(假设初始用户是 postgres
),在 psql
提示符下,执行以下命令:
-- 在 psql 提示符下输入以下命令查看现有角色:
\du
-- 修改当前 role 的密码(将 {role} 替换成上一步查到的 role 名称,比如 postgres)
\password {role}
然后系统会提示你输入并确认新密码。
创建新的用户
在 psql
提示符下,执行以下命令:
CREATE USER new_username WITH PASSWORD 'new_password';
为新用户赋予权限(可选,根据需要):
-- 如果你希望给新用户超级用户权限,执行以下命令:
ALTER USER new_username WITH SUPERUSER;
-- 如果只需要赋予创建数据库的权限:
ALTER USER new_username WITH CREATEDB;
完成上述步骤之后,你就可以使用新用户进行数据库操作了。需要注意的是,为保证安全,请根据具体需求合理分配权限。
连接到数据库
使用 psql
命令连接到数据库:
psql -h localhost -U myuser -d mydatabase
通过 psql
连接并查看当前连接的数据库、用户等信息:
psql -h localhost -U myuser -d mydatabase -c '\conninfo'