本文记录了本人平时将PostgreSQL对接到项目的流程,创建一个登录用户并为其新建一个数据库,最后获得一个可使用的连接字符串。本文将包含以下内容:
- 安装PostgreSQL,添加环境变量
- 创建登录用户、新建数据库
1 安装
1.1 windows下安装
- 在postgresql官网给出的下载地址中下载相应版本,打开后正常安装即可,建议安装时,除了安装位置,其他都不要修改。 其中,需要在安装时设定超级用户的密码,端口号按默认的就好,使用数据库管理软件连接时需要填写端口号,默认的话忘了直接上网搜一下就好了。下图是开始安装前的相关配置。
- 安装完成后,会有一个管理软件,还有一个shell控制台。
- 为了直接在cmd中使用postgresql的控制台,需要将该shell的目录添加到系统变量。在我的电脑中,postgresql的控制台在
D:\Program Files\PostgreSQL\14\bin\
目录下。打开系统的环境变量,找到系统变量下的Path变量,选中后点击”编辑“按钮,将postgresql控制台所在的目录添加到Path变量中。如下图所示(用户变量下可加可不加)。
4. 打开cmd,输入psql -U postgres
回车,然后输入在安装时设定的超级用户密码即可。(这里给大家演示了两个错误,最后划线的才是正确的。第一个错误是需要用-U
指定username,否则默认为当前系统登录的用户,在linux中通常是先su到postgres用户,然后执行psql
命令就没有问题;第二个是提醒大家postgreSQL的超级用户是postgres)
1.2 linux下安装
安装postgresql13
安装存储库RPM
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
安装postgresql13
sudo yum install -y postgresql13-server
初始化数据库
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
使用systemctl
管理postgresql服务,设为自启动并启动postgresql服务
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13
上面的命令没有出现错误提示就表示服务启动成功,也可以尝试进入postgresql命令行来验证服务启动成功。先切换到postgres用户
# root用户
su postgres
进入postgresql命令行
# postgres用户
cd ~
psql
没有出现错误提示,显示postgres=#
即说明postgresql服务启动成功
设置远程连接
(选做,存在安全问题)如果上面切到了postgres用户,请切回root用户
# 之后使用systemtml管理服务需要root权限
su root
修改配置文件postgresql.conf
vi /var/lib/pgsql/13/data/postgresql.conf
如下图所示,新增listen_addresses = ‘*’
修改配置文件pg_hba.conf
vi /var/lib/pgsql/13/data/pg_hba.conf
结尾新增访问规则
host all all 0.0.0.0/0 trust
重启postgresql-13
服务。
systemctl restart postgresql-13
如果没有错误提示说明重启成功;如果出现错误提示,请检查修改的配置文件内容是否有拼写错误,可以通过在修改一个文件后就重启一次服务来发现问题所在。
2 创建用户及新建数据库
使用psql进入postgresql的控制台,接下来的命令是跨平台通用的。
- 创建一个数据库用户
bachelor
,指定密码为bachelor123
CREATE USER bachelor WITH PASSWORD 'bachelor123';
- 创建一个数据库
smartaccess
并指定bachelor
为所有者
CREATE DATABASE smartaccess OWNER bachelor;
- 授予
bachelor
在smartaccess
数据库的所有权限
GRANT ALL PRIVILEGES ON DATABASE smartaccess to bachelor;
- 使用
du
查看所有用户,使用\l
查看所有数据库
3 连接字符串
现在可以得到一个使用bachelor
用户登录smartaccess
数据库的连接字符串:
server=127.0.0.1;port=5432;uid=bachelor;pwd=bachelor123;database=smartaccess;
我在项目中使用ORM迁移命令初始化数据库,进入数据库管理软件中可以看到,已经创建的相应的数据表。