文档章节

Centos7安装和配置Postgresql数据库及Navicat连接(超全面)

panyunxing
 panyunxing
发布于 07/16 15:55
字数 1638
阅读 25
收藏 0

Postgresql官网Linux Red Hat族系统的Postgresql的下载安装地址:

https://www.postgresql.org/download/linux/redhat/

1.安装最新版

进入网址,可以根据提示安装最新的Postgresql11:

对应的shell代码:

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql11
yum install postgresql11-server
/usr/pgsql-11/bin/postgresql-11-setup initdb        //首次初始化数据库,只能初始化一次
systemctl enable postgresql-11       //开启系统登陆自启动
systemctl start postgresql-11            //开启服务

2.安装包含于Linux发行版本的Postgresql

安装Centos7发行版本中的Postgresql9.2:

yum install postgresql-server
postgresql-setup initdb     //首次初始化数据库,只能初始化一次
systemctl enable postgresql.service  //设置开机自启动,可不开启,但是每次使用都需要开启服务
systemctl start postgresql.service     //开启服务

关闭服务:systemctl stop postgresql.service

重启服务:systemctl restart postgresql.service

3.【补充】如何再次初始化

直接再次执行初始化命令会报错:

因为Postgresql默认路径/var/lib/pgsql/下的data文件夹非空

查看一下:ll -lhtr /var/lib/pgsql/data

删除里面的所有文件:rm -rf /var/lib/pgsql/data/*

重新运行初始化:postgresql-setup initdb

4.为Postgresql添加新用户和新数据库

初次安装后,默认生成一个名为postgres的数据库和一个名为postgres的数据库用户。同时还生成了一个名为postgres的Linux系统用户。

(1)使用postgres用户,来生成其他用户和新数据库。

切换到postgres用户:# su - postgres

下一步,使用psql命令登录PostgreSQL控制台:

这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为"postgres=#",表示这时已经进入了数据库控制台。

先使用\password postgres命令,为postgres用户设置一个密码:

(或者通过命令alter user postgres password 'YourPassword';来设置用户postgres的密码)

使用\q命令(或直接按ctrl+D)退出。再次登陆就需要密码了:

仅创建数据库用户不创建对应的linux用户,创建一个名字为testuser的用户:

CREATE USER testuser WITH PASSWORD 'abc';

创建一个名为test1的测试数据库:create database test1;

(这里为创建用户数据库,可以指定所有者:CREATE DATABASE test1 OWNER testuser;)

test1数据库的所有权限都赋予testuser,否则testuser只能登录控制台,没有任何数据库操作权限。

GRANT ALL PRIVILEGES ON DATABASE test1 to testuser;

最后测试:

5.【补充】Postgresql数据库基本命令

登陆命令:psql -h 127.0.0.1 -U testuser -d test1 -p 5432

psql命令参数说明:

-h:数据库IP 
-U:登录用户 
-d:登录的数据库 
-p:登录端口

\dt:列出当前数据库所有表

列出表名

SELECT   tablename   FROM   pg_tables;
WHERE   tablename   NOT   LIKE   'pg%'
AND tablename NOT LIKE 'sql_%' 
ORDER   BY   tablename;

\l:列出数据库名(或 SELECT datname FROM pg_database;

\c [数据库名]:切换数据库

\d [数据库] :得到所有表的名字

\d [表名] : 得到表结构

通过SQL语句查询

select * from pg_tables :得到当前db中所有表的信息(这里pg_tables是系统视图)

select tablename from pg_tables where schemaname='public':得到所有用户自定义表的名字(这里"tablename"字段是表的名字,"schemaname"是schema的名字。用户自定义的表,如果未经特殊处理,默认都是放在名为public的schema下)

6.配置第三方用户登陆数据库

完成以上配置,数据库仅仅只能进入对应数据库名字的linux用户下,才能进入访问,否则报Ident错误和Navicat无法连接成功。

查找数据库的配置文件:# find / -name pg_hba.conf

打开:# vi /var/lib/pgsql/data/pg_hba.conf

将没注释掉的那3个的验证方法的peerident修改md5

【说明】:

METHOD指定如何处理客户端的认证。常用的有ident,md5,password,trust,reject

ident是Linux下PostgreSQL默认的local认证方式,凡是能正确登录服务器的操作系统用户(注:不是数据库用户)就能使用本用户映射的数据库用户不需密码登录数据库。用户映射文件为pg_ident.conf,这个文件记录着与操作系统用户匹配的数据库用户,如果某操作系统用户在本文件中没有映射用户,则默认的映射数据库用户与操作系统用户同名。比如,服务器上有名为user1的操作系统用户,同时数据库上也有同名的数据库用户,user1登录操作系统后可以直接输入psql,以user1数据库用户身份登录数据库且不需密码。很多初学者都会遇到psql -U username登录数据库却出现“username ident 认证失败”的错误,明明数据库用户已经createuser。原因就在于此,使用了ident认证方式,却没有同名的操作系统用户或没有相应的映射用户。解决方案:

1、在pg_ident.conf中添加映射用户;

2、改变认证方式:

md5是常用的密码认证方式,如果你不使用ident,最好使用md5。密码是以md5形式传送给数据库,较安全,且不需建立同名的操作系统用户。

password是以明文密码传送给数据库,建议不要在生产环境中使用。

trust是只要知道数据库用户名就不需要密码或ident就能登录,建议不要在生产环境中使用。

reject是拒绝认证。

在文件查找 listen_addresses,他的值说明如果希望只能从本地计算机访问PostgreSQL数据库,就将该项设置为localhost

如果希望从局域网访问PostgreSQL数据库,就将该项设置为PostgreSQL数据库的局域网IP地址;

如果希望从互联网访问PostgreSQL数据库,就将该项设置为PostgreSQL数据库的互联网IP地址;

如果希望从任何地方都可以访问PostgreSQL数据库,就将该配置项设置为“*”;

7.配置Navicat可视化管理工具

列出所有端口:netstat -ntlp

把端口和密码对应填入,测试连接,如果报Ident错误,请执行步骤6,最后点击确定即可。

© 著作权归作者所有

panyunxing
粉丝 1
博文 23
码字总数 10707
作品 0
茂名
私信 提问
Navicat Premium for mac激活并汉化

Navicat Premium for mac是一个可多重连接的数据库管理工具,Navicat 的功能足以符合专业开发人员的所有需求,但是对数据库服务器的新手来说又相当容易学习。它可让你以单一程序同時连接到目...

风灬云
2015/07/17
0
2
navicat for mysql和Navicat Premium的区别

Navicat Premium是一套数据库管理工具,结合了其它Navicat成员的功能,支持单一程序同时连接到MySQL、MariaDB、SQL Server、SQLite、Oracle和PostgreSQL数据库。Navicat Premium可满足现今数...

我风依旧
2018/09/18
767
0
Navicat Premium 11.1.12 简体中文 x86 x64 版 破解补丁

 1. 免责声明   涉及到windows软件破解,病毒恐惧者速速绕行,投入XXX卫士管家的怀抱,恕不远送!本人不对使用过程中可能引起的不适和恐惧负责,破解软件仅供学习交流,请勿用于商业用途!...

zoakerc
2014/10/08
30.6K
21
Centos 7 安装 PostgreSQL

本文只讲PostgreSQL在CentOS 7.x 下的安装,其他系统请查看:https://www.postgresql.org/download PostgreSQL 所用版本为:PostgreSQL 10 1.安装存储库 https://download.postgresql.org/pu......

dragon_tech
2018/11/23
30
0
数据库开发工具 Navicat Premium v12.0.28 简体中文多语言

原文:https://www.luochenzhimu.com/archives/3303.html Navicat Premium 是一套数据库开发工具,让你从单一应用程序中同时连接 MySQL、MariaDB、SQL Server、Oracle、PostgreSQL 和 SQLite...

zdhsoft
2018/05/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
5
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0
栈-链式(c/c++实现)

上次说“栈是在线性表演变而来的,线性表很自由,想往哪里插数据就往哪里插数据,想删哪数据就删哪数据...。但给线性表一些限制呢,就没那么自由了,把线性表的三边封起来就变成了栈,栈只能...

白客C
今天
42
0
Mybatis Plus service

/** * @author beth * @data 2019-10-20 23:34 */@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceTest { @Autowired private IUserInfoService iUserInfoS......

一个yuanbeth
今天
5
0
php7-internal 7 zval的操作

## 7.7 zval的操作 扩展中经常会用到各种类型的zval,PHP提供了很多宏用于不同类型zval的操作,尽管我们也可以自己操作zval,但这并不是一个好习惯,因为zval有很多其它用途的标识,如果自己...

冻结not
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部