这篇文章主要讲解了“Centos7安装和配置Postgresql数据库及Navicat连接”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Centos7安装和配置Postgresql数据库及Navicat连接”吧!
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个的验证方法的peer
和ident
修改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,最后点击确定即可。
感谢各位的阅读,以上就是“Centos7安装和配置Postgresql数据库及Navicat连接”的内容了,经过本文的学习后,相信大家对Centos7安装和配置Postgresql数据库及Navicat连接这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。