Postgresql官网Linux Red Hat族系统的Postgresql的下载安装地址:linux
https://www.postgresql.org/download/linux/redhat/sql
1.安装最新版shell
进入网址,能够根据提示安装最新的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:ide
yum install postgresql-server postgresql-setup initdb //首次初始化数据库,只能初始化一次 systemctl enable postgresql.service //设置开机自启动,可不开启,可是每次使用都须要开启服务 systemctl start postgresql.service //开启服务
关闭服务:systemctl stop postgresql.service
工具
重启服务:systemctl restart postgresql.service
post
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认证方式,却没有同名的操做系统用户或没有相应的映射用户。解决方案:
一、在pg_ident.conf中添加映射用户;
二、改变认证方式:
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,最后点击肯定便可。