win10安装配置PostgreSQL

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 win10安装配置PostgreSQL,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

win10安装配置PostgreSQL

1 下载安装PostgreSQL

①进入官网https://www.postgresql.org/,点击页面中心处的download

也可以直接跳过下面的步骤(下面的步骤主要是为了帮助大家了解一般外国软件是如何从官网进入下载页面),直接进入下载页面,链接地址:

  • https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

②选择对应的操作系统,点击进入特定的下载页面

本文以windows10为例,点击windows

在这里插入图片描述
③进入windows的下载页面,然后点击download the installer
在这里插入图片描述
④选择对应系统的对应版本即可
在这里插入图片描述

下载完成后以管理员权限运行安装,安装过程都可以默认下一步

注意:如果双击.exe文件报错:
在这里插入图片描述

  • 是因为我们当前用户名中包含中文,导致安装过程,因此我们只需要将win10用户名改为英文的即可

2 配置PostgreSQL

2.1 配置环境变量

①右击win10桌面上的此电脑,选择属性,然后选择高级系统设置
在这里插入图片描述
②选择环境变量
在这里插入图片描述
③根据自己需求,看配置用户环境变量还是系统环境变量

用户环境变量,只针对当前用户,系统环境变量则针对该电脑所有用户

  • 一般配置系统环境变量

在系统环境变量下,选择新建
在这里插入图片描述

# 新建PG_HOME,对应的值填入自己postgre的安装目录
E:\database\PostgreSQL
# 在path下追加%PG_HOME%\bin\
%PG_HOME%\bin\
# 新建PG_DATA
E:\database\PostgreSQL\data

2.2 初始化

①安装完成后我们需要对数据库进行初始化,初始化方法是执行initdb.exe.
在这里插入图片描述

E:\database\PostgreSQL\data 初始化执行之前是空的,执行之后会看到很多文件
在这里插入图片描述

②修改data目录下的配置文件postgresql.conf

如果仅想本地访问则listen_addresses改为localhost,如果想配置都访问,则配置为*

#listen_addresses = 'localhost'		# what IP address(es) to listen on;
			# comma-separated list of addresses;
			# defaults to 'localhost'; use '*' for all
			# (change requires restart) 

3 启动并测试

因为我们开始配置了环境变量,所以任意位置进入cmd,然后执行

psql -U postgres

然后输入我们开始安装过程中设置的密码,即可:
在这里插入图片描述

  • 测试通过navicat连接
    在这里插入图片描述
    点击,测试连接,结果:
    在这里插入图片描述

4 相关命令

4.1 创建用户

# 创建用户
CREATE USER testUser WITH PASSWORD '*****';
# yaml中url配置:
# url: "postgres://user_name:pass_word@ip:port/database?sslmode=disable"
url: "postgres://s3batch_u:postgres@127.0.0.1:5432/s3batch?sslmode=disable"

4.2 注册为系统服务

pg_ctl register -N "postgresql" -D "C:\Program Files\PostgreSQL\your_postgresql_version\data" -U "your_username" -P "your_password"

# 或者
sc create postgresql binPath= "E:\database\PostgreSQL\bin\pg_ctl.exe runservice -N postgresql -D "E:\database\PostgreSQL\data" -w" start= auto

4.3 操作数据库或表

-- 以postgres用户角色登录postgresql数据库
psql -U postgres;

--
①postgres-#:短横杠的表明语句未结束,用分号标识结束
②postgres=#:postgres后面是等号的表明语句已经结束,可以开始一个新的语句
--

-- 切换数据库[以workflow_u的用户角色切换到workflow数据库]
\c workflow workflow_u

-- 展示当前数据库下所有的表
\d

-- 展示userinfo的表结构
\d userinfo


-- 创建表
CREATE TABLE userdetail
(
    uid integer,
    intro character varying(100),
    profile character varying(100) -- 类似于mysql的varchar(100)
)
WITH(OIDS=FALSE);

-- 添加记录
insert into userdetail (uid, intro, profile) values (1, '这是一个介绍', '这个是个人资料');

-- 查询表中记录记录[起始记录从0开始,每页5条数据]
select uid, intro, profile from public.userdetail offset 0 limit 5;

-- 根据创建时间降序排列
select uid,intro from userdetail  order by created_time desc offset 0 limit 1;

-- 删除表中的intro字段
alter table userdetail drop column intro;

-- 向表中添加name字段
alter table userdetail add column name character varying(100);

-- 更新表中记录
update userdetail set name = 'jack' where uid = 1;

-- 给uid添加主键
alter table userdetail drop constraint if exists userdetail_pkey, add primary key(uid);

-- 给name添加唯一索引
create unique index if not exists idx_userdetail_name on userdetail (name);

-- 添加时间字段,并插入一条记录 timestamp:2023-06-30 16:44:41.660549
alter table userdetail add column created_time timestamp;
-- insert into userdetail(uid, profile, name, created_time) values(4, 'intro4', 'tom4', ' 2022-06-30 16:44:41.660549');
insert into userdetail(uid, profile, name, created_time) values(2, '介绍2', 'tom', now());


-- 创建序列sequence
CREATE SEQUENCE uid_sequence
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;
 
 -- 删除序列
 DROP SEQUENCE IF EXISTS uid_sequence;

   
-- 修改表结构,将 uid 设置为序列的默认值
ALTER TABLE userdetail 
    ALTER COLUMN uid SET DEFAULT nextval('uid_sequence'::regclass);    

-- 删除表
drop table userdetail;

# \l 列出所有数据库
\l

# \c 切换数据库
\c testbase

# \d 查询当前数据库下的所有表
\d 
# \d table_name 查看表结构

# \d table_name 查看表的信息(如果有索引也会展示出来)
\d mytable

# \di 查看数据库的所有索引,在postgres=#模式下执行
\di

# \q 退出控制台
\q 

5 bug

5.1 pq: SSL is not enabled on the server

# 在datasource中设置sslmode=disable
datasource := "user=postgres password=*** host=localhost port=5432 dbname=testgo sslmode=disable"

5.2 控制台乱码

# 连接到数据库
psql -U your_username -d your_database_name

# 查看当前编码
SHOW client_encoding;

打开 PostgreSQL 的配置文件 postgresql.conf。该文件通常位于 PostgreSQL 安装目录下的 data 子目录中。

在文件中找到 client_encoding 参数,并将其值修改为 UTF8

client_encoding = 'UTF8'

保存,并关闭文件,然后重启psql

net stop postgresql
net start postgresql

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/148480.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!