post修改服务器数据源,postgresql安装及配置超详细教程

1. 安装

根据业务需求选择版本,官网下载

初始化数据库

执行完初始化任务之后,postgresql 会自动创建和生成两个用户和一个数据库:

linux 系统用户 postgres:管理数据库的系统用户;

密码由于是默认生成的,需要在系统中修改一下,$passwd postgres

数据库用户 postgres:数据库超级管理员此

用户默认数据库为postgres

设置成 centos7 开机启动服务

启动 postgresql 服务

2. PostgrepSQL的简单配置

pgsql9.6配置文件位置默认在:/var/lib/pgsql/9.6/data/postgresql.conf

2.1 修改监听的ip和端口

监听IP使用localhost时,只能通过127.0.0.1访问数据库;

如果需要通过其他远程地址访问PostgreSQL,可以使用“,”作为分隔符,把IP地址添加到listen_addresses后,或者使用“*”,让所有IP都可以访问数据库。

注意:这里只是开启数据库的远程访问权限,具体是否能够进行远程登录,还需要依据pg_hba.conf的认证配置,详细内容见下节。

2.2 修改数据库log相关的参数

日志收集,一般是打开的

日志目录,一般使用默认值

只保留一天的日志,进行循环覆盖

2.3 内存参数

共享内存的大小,用于共享数据块。如果你的机器上有足够的内存,可以把这个参数改的大一些,这样数据库就可以缓存更多的数据块,当读取数据时,就可以从共享内存中读,而不需要再从文件上去读取。

单个SQL执行时,排序、hash json所用的内存,SQL运行完后,内存就释放了。

PostgreSQL安装完成后,可以主要修改以下两个主要内存参数:

shared_buffer:共享内存的大小,主要用于共享数据块,默认是128MB;

如果服务器内存有富余,可以把这个参数适当改大一些,这样数据库就可以缓存更多的数据块,当读取数据时,就可以从共享内存中读取,而不需要去文件读取。

work_mem:单个SQL执行时,排序、hash join所使用的内存,SQL运行完成后,内存就释放了,默认是4MB;

增加这个参数,可以提高排序操作的速度。

3. 数据库的基础操作

3.1 连接数据库控制台

如果想连接到数据库,需要切换到postgres用户下(默认的认证配置前提下)

在postgres用户下连接数据库,是不需要密码的。

切换 postgres 用户后,提示符变成 -bash-4.2$

使用psql连接到数据库控制台,此时系统提示符变为'postgres=#'

3.2 一些常用控制台命令

命令

作用

\h

查看所有sql命令,\h select 等可以查看具体命令

?

查看所有psql命令

\d

查看当前数据库所有表

\d

[tablename] 查看具体的表结构

\du

查看所有用户

\l

查看所有数据库

\e

打开文本编辑器

3.3 SQL控制台操作语句

数据库创建与修改

数据库用户创建与授权

4. 认证登录

认证权限配置文件: /var/lib/pgsql/9.6/data/pg_hba.conf

命令行的各个参数解释说明:

-U username 用户名,默认值postgres

-d dbname 要连接的数据库名,默认值postgres。如果单指定-U,没指定-d参数,则默认访问与用户名名称相同的数据库。

-h hostname 主机名,默认值localhost

-p port 端口号,默认值5432

4.1 认证方式

常见的四种身份验证方式

trust:凡是能连接到服务器的,都是可信任的。只需要提供数据库用户名,可以没有对应的操作系统同名用户;

password 和 md5:对于外部访问,需要提供 psql 用户名和密码。对于本地连接,提供 psql 用户名密码之外,还需要有操作系统访问权(用操作系统同名用户验证)。password 和 md5 的区别就是外部访问时传输的密码是否用 md5 加密;

ident:对于外部访问,从 ident 服务器获得客户端操作系统用户名,然后把操作系统作为数据库用户名进行登录;对于本地连接,实际上使用了peer;

peer:通过客户端操作系统内核来获取当前系统登录的用户名,并作为psql用户名进行登录。

4.2 远程登录

postgresql.conf

pg_hba.conf

所有的用户通过任意ip都可以通过md5(密码)的方式登陆PostgreSQL,配置如下:

验证

4.3 本地登录

PostgreSQL登陆默认是peer,不需要验证用户密码即可进入psql相关数据库,但前提是必须切换用户登陆。类似于最开始执行的su postgres;psql一样。

如果必须按照上述登陆方式登陆的话,有两种修改方式:

增添map映射

修改认证方式

a. map映射

map映射是用来将系统用户映射到对应的postgres数据库用户,用来限制指定的用户使用指定的账号来登陆。

pg_ident.conf

修改pg_ident.conf文件,与pg_hba.conf文件同级目录。其基本格式如下:

MAPNAME指的是映射的名称,比如map_zhangsan

SYSTEM-USERNAME就是系统用户的名称,比如root

PG-USERNAME就是数据库里存在的用户名称,比如zhangsan

上面定义的map意思是:定义了一个叫做map_zhangsan的映射,当客户端用户是root的时候,允许它用zhangsan用户来登陆PostgreSQL。

修改pg_hba.conf文件

在peer的认证方式后面添加:map=map_tom

1-2103151U211.png

重启PostgreSQL服务,再次尝试,连接成功。

1-2103151U212.png

b. 修改认证方式

需要修改一下pg_hba.cong文件,将local all all peer修改为local all all md5,如下图所示:

1-2103151U212-50.png

重启PostgreSQL服务,再次尝试,连接成功。

到此这篇关于postgresql安装及配置超详细教程的文章就介绍到这了,更多相关postgresql安装及配置内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/sunhongleibibi/p/11943393.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序分享到朋友圈_如何给小程序添加分享朋友圈

微信公众号更新以后,推送不是按照优先来的,你们可以把我的微信公众号点击设置为星标,以便于及时的接收信息.从微信小程序官方分享朋友圈有那么几天了,今天就分享下如何给自己的小程序添加分享朋友圈代码,几行代码的事。根据官方的提示需要基础…

游戏开发第3天小结

今天是正式开始的第三天。这三天来一直在弄跟模型相关的事情,用blender来修改模型,做骨骼,蒙皮,导出到3dXchange中,再导到Iclone里去制作动作,最后导出到Unity里。简单就这样的一个工作流程。其中遇到各种头…

grep -q用于if逻辑判断

grep -q用于if逻辑判断突然发现grep -q 用于if 逻辑判断很好用。-q 参数,本意是 Quiet; do not write anything to standard output. Exit immediately with zero status if any match is found, even if an error was detected. 中文意思为,安静模式&…

iReport报表工具的使用

对于本人来说,报表工具只是刚刚接触,经过几个小时的摸索,基本的操作还是可以的。 (1)安装该工具总结 首先需要到日所安装数据库所需的驱动 工具--->选项--->classpath--->addjar(然后选中需要导入的数据库驱动…

mac远程redis_Linux:使用Mac远程(局域网内)访问Ubuntu主机上的Redis服务

1. 前言本文介绍的方法,是通过配置 Redis,在 Mac 上通过 ssh 协议访问 Ubuntu 主机的 Redis 服务;注意:如果 Ubuntu 不做 Redis 配置,Mac 直接访问 Ubuntu 的 Redis 服务时会报以下错误:Could not connect …

bbb 烧写脚本分析

ftp服务器地址,即CCS Uniflash的地址 SERVER_IP"192.168.2.1" MLO u-boot.img uImage压缩文件的名称,即ftp服务器下载目录里的文件名 BOOT_PARTITION"boot_partition.tar.gz" 文件系统的名称,即ftp服务器下载目录里的…

mysql 增量备份脚本_MySQL自动化(全量+增量)备份脚本

一、MySQL的日常备份方案:全备增量备份:1、周日凌晨三点进行全备;2、周一到周日增量备份。不是往常的周日全备份,周一到周六增量备份,这样如果周日数据库在完全备份前出问题,恢复完成后,会少周日…

JS代码大全

一、验证类 1、数字验证内 1.1 整数 /^(-|\)?\d$/.test(str) 1.2 大于0的整数 (用于传来的ID的验证) /^\d$/.test(str) 1.3 负整数的验证 /^-\d$/.test(str) 2、时间类 2.1 短时间,形如 (13:04:06) function isTime(str) …

Linux编程里getopt_long_only函数用法详解

在程序中难免需要使用命令行选项,可以选择自己解析命令行选项,但是有现成的,何必再造轮子。下面介绍使用getopt_long_only和getopt_long( 两者用法差不多 )解析命令行选项。 程序中主要使用: 短选项长选项是否需要参数-n--userna…

mybatis的mysql参数传递参数_mybatis 传递参数的方法总结

有三种mybatis传递参数的方式:第一种mybatis传入参数是有序号的,可以直接用序号取得参数User selectUser(Stringname,String area);可以在xml配置文件中写select * from user_user_t where user_name #{0} and user_area#{1}#{0} 表示传递过来的第一参数 . 也就是说#{N} 就可以…

C# 数据的加密解密

/// <summary> /// 加密数据 /// </summary> /// <param name"Text"></param> /// <param name"sKey"></param> /// <returns></returns> public static string Encrypt(string Text, string sKey){DESCr…

strdup函数的用法

函数名: strdup 功 能: 将串拷贝到新建的位置处 用 法: char *strdup(char *str)&#xff1b; 这个函数在linux的man手册里解释为&#xff1a; The strdup() function returns a pointer toa new string which is a duplicate of the string s. Memory for thenew string is …

eclipse中查看mysql_eclipse中怎样查看sqlite数据库的表

string createtable(classclazz , string tablename){//实例化一个容器&#xff0c;用来拼接sql语句stringbuffer sbuffer new stringbuffer();//sql语句&#xff0c;第一个字段为_id 主键自增&#xff0c;这是通用的&#xff0c;所以直接写死sbuffer.append("create tab…

Java 泛型(一)

1&#xff0c;泛型的声明 a&#xff09;在方法中的声明&#xff1a; 现在访问修饰符后&#xff0c;返回值类型前加上<T>&#xff0c;其它字母亦可。 b&#xff09;在类中的声明&#xff1a; 在类名后加<T> 练习&#xff1a;用泛型写一个方法&#xff0c;将一个数组…

敏捷开发之Scrum扫盲篇

现在敏捷开发是越来越火了&#xff0c;人人都在谈敏捷&#xff0c;人人都在学习Scrum和XP... 为了不落后他人&#xff0c;于是我也开始学习Scrum&#xff0c;今天主要是对我最近阅读的相关资料&#xff0c;根据自己的理解&#xff0c;用自己的话来讲述Scrum中的各个环节&#x…

macos xampp mysql 命令_MAC系统XAMPP 中 MySQL命令行client配置使用

在PHP的学习过程中。MySQL预计是必定会接触的。MySQL的管理相信大家也会使用phpmyadmin&#xff1a;好吧。phpmyadmin的确是MySQL管理的神器&#xff0c;你想要的。他好多都有&#xff0c;在开发的过程中。对于后台数据库的设计架构帮助真的非常大。可是。在这篇文章的主角确不…

]Kinect for Windows SDK开发入门(六):骨骼追踪基础 上

原文来自&#xff1a;http://www.cnblogs.com/yangecnu/archive/2012/04/06/KinectSDK_Skeleton_Tracking_Part1.html Kinect产生的景深数据作用有限&#xff0c;要利用Kinect创建真正意义上交互&#xff0c;有趣和难忘的应用&#xff0c;还需要除了深度数据之外的其他数据。这…

signal(SIGPIPE, SIG_IGN);

TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点各负责一条. 当对端调用close时, 虽然本意是关闭整个两条信道, 但本端只是收到FIN包. 按照TCP协议的语义, 表示对端只是关闭了其所负责的那一条单工信道, 仍然可以继续接收数据. 也就是说, 因为TCP协议的限制…

mysql与groupconcat相反的_MySQL中GROUP_CONCAT的反义词是什么?

我认为这是你需要的(存储过程)&#xff1a;Mysql split column string into rowsDELIMITER $$DROP PROCEDURE IF EXISTS explode_table $$CREATE PROCEDURE explode_table(bound VARCHAR(255))BEGINDECLARE id INT DEFAULT 0;DECLARE value TEXT;DECLARE occurance INT DEFAULT…

leetcode: Roman to Integer

http://oj.leetcode.com/problems/roman-to-integer/ Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999. 思路&#xff1a; 根据个十百千位分别作为一个状态机处理就可以了。 1 class Solution {2 public:3 in…