1.安装
安装大家一定会遇到很多错误,对此,我对我遇到的所有的错误进行总结,希望能对大家有帮助。
地址:
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads。
傻瓜式安装
- 问题1:PostgreSQL查不到服务
解决:
cd 到bin目录下,输入:pg_ctl register -N PostgreSQL -D “C:\PostgreSQL\9.5\data”
//重新配置文件
pg_ctl reload -D …/data
注意:要用管理员身份运行.
- 问题2:PostgreSQL启动后自动停止
//删除服务
C:\WINDOWS\system32>sc delete PostgreSQL
[SC] DeleteService 成功
//cd 到bin目录
C:\WINDOWS\system32>cd C:\Program Files\PostgreSQL\14\bin
//注册新服务
C:\Program Files\PostgreSQL\14\bin>.\pg_ctl.exe register -D ..\data
//初始化data
C:\Program Files\PostgreSQL\14\bin>pg_ctl.exe -D "C:\Program Files\PostgreSQL\14\data" initdb
属于此数据库系统的文件宿主为用户 "12057".
此用户也必须为服务器进程的宿主.
数据库簇将使用本地化语言 "Chinese (Simplified)_China.936"进行初始化.
本地化隐含的编码 "GBK" 不允许作为服务器端的编码.
默认的数据库编码将采用 "UTF8" 作为代替.
initdb: 无法为本地化语言环境"Chinese (Simplified)_China.936"找到合适的文本搜索配置
缺省的文本搜索配置将会被设置到"simple"
禁止为数据页生成校验和.
修复已存在目录 C:/Program Files/PostgreSQL/14/data 的权限 ... 成功
正在创建子目录 ... 成功
选择动态共享内存实现 ......windows
选择默认最大联接数 (max_connections) ... 100
选择默认共享缓冲区大小 (shared_buffers) ... 128MB
选择默认时区 ... Asia/Shanghai
创建配置文件 ... 成功
正在运行自举脚本 ...成功
正在执行自举后初始化 ...成功
同步数据到磁盘...成功
initdb: 警告: 为本地连接启用"trust"身份验证
你可以通过编辑 pg_hba.conf 更改或你下次
执行 initdb 时使用 -A或者--auth-local和--auth-host选项.
成功。您现在可以用下面的命令开启数据库服务器:
^"C^:^\Program^ Files^\PostgreSQL^\14^\bin^\pg^_ctl^" -D ^"C^:^/Program^ Files^/PostgreSQL^/14^/data^" -l 日志文件 start
//启动服务器
C:\Program Files\PostgreSQL\14\bin>.\pg_ctl.exe start -D ..\data
等待服务器进程启动 ....2022-04-18 11:07:20.528 CST [780] 日志: 正在启动 PostgreSQL 14.2, compiled by Visual C++ build 1914, 64-bit
2022-04-18 11:07:20.540 CST [780] 日志: 正在监听IPv6地址"::1",端口 5432
2022-04-18 11:07:20.541 CST [780] 日志: 正在监听IPv4地址"127.0.0.1",端口 5432
2022-04-18 11:07:20.711 CST [13980] 日志: 数据库上次关闭时间为 2022-04-18 11:07:08 CST
2022-04-18 11:07:20.824 CST [780] 日志: 数据库系统准备接受连接
完成
服务器进程已经启动
- 问题3:启动项目,显示拒绝连接。之后打开pgAdmin登录操作,但失败了!并显示错误信息。
//创建用户
createuser -s -r postgres
//设置密码
C:\Program Files\PostgreSQL\14\bin>psql -U postgres
psql (14.2)
输入 "help" 来获取帮助信息.
postgres=# \c postgres
您现在已经连接到数据库 "postgres",用户 "postgres".
postgres=# alter user postgres with password '123456';
ALTER ROLE
postgres=# \q
2.数据类型
枚举类型的使用:
枚举类型需要使用 CREATE TYPE 命令先创建,再使用
//创建,类型名为mood 值为enum('sad','fine','happy')
create type mood as enum('sad','fine','happy');
create table person(
person_name text,
current_mood mood
);
insert into person values('HuangJuan','happy');
SELECT