在 WSL 中安装并使用 Postgres
为了简短起见,我假设您熟悉 bash、Postgres 并且已经安装了 WSL。
安装 Postgres
要安装 Postgres 并在 WSL 中运行它,您只需执行以下操作:
- 打开 WSL 终端
- 更新你的 Ubuntu 软件包:
sudo apt update
- 软件包更新完成后,使用以下命令安装 PostgreSQL(以及具有一些有用实用程序的 -contrib 软件包):
sudo apt install postgresql postgresql-contrib
- 确认安装并获取版本号:
psql --version
设置密码
默认管理员用户postgres
需要指定密码才能连接到数据库。设置密码的步骤如下:
- 输入命令:
sudo passwd postgres
- 您将收到输入新密码的提示。
- 关闭并重新打开您的终端。
你可以使用 直接访问psqlsudo -u postgres psql
。你应该会看到提示符变为:
postgres=#
要更改数据库只需使用\c mydb
。
您也可以使用su - postgres
进入 postgres 用户。这里使用您上面设置的密码。您的提示符应该更改为:
postgres@mycomputername:~$
从这里,您可以使用 psql 登录任何数据库。
创建数据库
要创建数据库,只需使用以下命令:
createdb mydb
你可以将mydb
数据库的名称更改为任何你想要的名称。要访问它,只需psql mydb
在命令行中输入。现在你的提示符应该如下所示:
mydb=#
要从文件在数据库中创建表,请使用以下命令:
psql -U postgres -q mydb < <file-path/file.sql>
有用的命令
\l
列出所有数据库。适用于任何数据库。\dt
列出当前数据库中的所有表。\c <db name>
切换到不同的数据库。
不使用psql
sudo
使用以下命令创建一个与你的 Ubuntu 用户名同名的 Postgres 用户。当系统提示时,将新角色设置为超级用户。
$ sudo -u postgres createuser --interactive
Enter name of role to add: sabrina
Shall the new role be a superuser? (y/n) y
然后你需要更改该pg_hba.conf
文件。它位于 下/etc/postgresql/<postgres-version>/main
。你需要 sudo 权限才能编辑此文件。
sudo vi pg_hba.conf
滚动到文件底部,现在将 更改为peer
,trust
如下所示:
# Database administrative login by Unix domain socket
local all postgres trust
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
从 Windows 访问数据库
- 您必须更改文件
postgresql.conf
。只需取消注释该行listen_address
并将其更改为即可listen_address = '*'
。 - 为 postgres 管理员用户设置密码
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
。这会将密码更改为 postgres,这是您连接数据库时使用的密码。您在安装期间设置的密码适用于 postgres Ubuntu 用户。
现在您应该能够使用TablePlus等软件从 Windows 连接到数据库。
需要更多吗?
这只是一个关于如何启动和运行的快速概述,如需更深入的教程,请参阅此文和下面列出的来源。
来源
WSL 文档:安装 PostgreSQL
Postgres 文档:1.3. 创建数据库
StackOverflow:PostgreSQL:为什么 psql 无法连接到服务器?
StackExchange:如何使用 psql 列出所有数据库和表?
StackOverflow:致命角色“root”不存在
Windows 版 WSL2 上的 POSTGRESQL:安装和设置
StackOverflow:用户“postgres”的密码验证失败