介绍
- 这学期的数据库课程要求使用
PostgreSQL
作为学习使用的数据库工具。 - 所以今天尝试着安装了一下
PostgreSQL
,出了一些问题,在此做一个记录。
环境
Windows
安装
- 目前
Windows
版本已经更新到了13
,不过老师要求的也就是10
。 这里我选择了
10.16
、11.11
、13.2
(官网提供的几个版本)分别尝试安装。结果以上版本在安装时都出现了同一个问题。
上网搜索过后,大致给出了三种可能:
- 路径中包含中文(然而我并没有)。
- 权限不够(管理员打开也不行)。
- 之前安装过的
Temp
文件冲突。
结合以上的问题,总结了一下解决过程:
先到对应路径下,把
Temp
文件夹中所有postgresql_install
的文件夹删除(需要管理员权限)。删除后保证用户名不包含中文,即可正常安装。
安装到选择目录时,如果你曾尝试在此目录安装,可能出现
1
the choosen installation directory exists and is non-empty.please choose a different directory
把此目录删除后新建即可。
Linux
Windows
安装虽然简便,但是一个简单的步骤出了很多莫名的问题。与此同时我在
Ubuntu
安装了一个Linux
版本的PostgreSQL
。在
Linux
中,PostgreSQL
和pgAdmin4
没有捆绑,需要后期建立连接。安装
这里参考了一下官方的方法,下面相当于对方法的翻译和总结吧。
更新系统软件包
1
sudo apt update
直接在库中安装最新的
PostgreSQL
1 | sudo apt install postgresql |
默认的
data
文件夹在/var/lib/postgresql/12/main
下,配置文件在/etc/postgresql/12/main
。
- 添加存储库的公共密钥并创建存储库配置文件
1 | curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add |
由于
Ubuntu
库中没有pgAdmin4
,只能通过pgAdmin4 APT
仓库安装。
- 安装
pgAdmin4
1 | sudo apt install pgadmin4 |
检查
- 安装完成后,检查
PostgreSQL
状态
1 | sudo systemctl is-active postgresql |
- 确认
PostgreSQL server
的状态
1 | sudo pg_isready |
配置
- 切换用户到
postgres
进行登录
1 | sudo su - postgres |
出现了
postgres=#
即成功登入
- 创建数据库用户和数据库并授权(这里的参数需要自定义)
1 | CREATE USER {USER_NAME} WITH PASSWORD {USER_PASSWD}; |
- 远程控制配置
1 | sudo vim /etc/postgresql/12/main/pg_hba.conf |
- 配置完成后重启服务
1 | sudo systemctl restart postgresql |
- 运行
pgdmin4
二进制软件包附带的Web
设置脚本,以配置系统以Web
模式运行
1 | sudo /usr/pgadmin4/bin/setup-web.sh |
- 填入你的邮箱和设置的密码,方便以后登录。
- 打开下列连接进入
pgAdmin4
(SERVER_IP
需要换成你服务器的ip
)
1 | http://SERVER_IP/pgadmin4 |
- 使用你刚刚设置的邮箱和密码登录。
- 连接新的服务器,点击
Add New Server
。 General
填写Name
即可
- 在
Connection
填写Host name/address
为你的服务器地址,Username
改为你之前创建的数据库用户。