微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL新手入门

一、介绍

Postgresql是以加州大学伯克利分校计算机系开发的POSTGRES,Version 4.2为基础的对象关系型数据库管理系统(ORDBMS)POSTGRES开创的许多概念在很久以后才出现在商业数据库中。Postgresql是最初伯克利代码一个开放源码的继承者。它支持大部分sql标准并且提供了许多其它现代特性:查询键、器、可更新的视图、完整性、多版本并控制。另外,可以用许多方法进行扩展,比如通过增加新的:数据型、函数、操作符、聚合函数、索引方法过程语言;并且,因为许可证的灵活,任何人都可以以任何目的免费使用、修改、分发,不管是私用、商用、还是学术研究使用。

二、系统环境

系统平台:CentOS release 6.5 (Final)

Postgresql版本:Postgresql 9.4.5

三、安装方式

yum安装

四、安装过程

1yum安装

如果是yum安装的话,会安装较低版本的Postgresql 8.4,这不符合我们的要求。

<a href=图片 1.png" src="http://zylhz.com/ueditor/PHP/upload/image/20151118/1447846151491803.png">

而这里我们选择使用官方提供的Postgresql Yum Repository来安装最新版本的Postgresql

  1. 1安装Postgresql yum Repository

[root@kvm ~]# yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm

  1. 2安装Postgresql

[root@kvm ~]# yum install postgresql94-server postgresql94-contrib

  1. 3初始化数据库


1447846193445409.pngPHP/upload/image/20151118/1447846193445409.png">

  1. 4启动数据库

1447846193728560.pngPHP/upload/image/20151118/1447846193728560.png">

2、学习使用Postgresql

初次安装后,Postgresql数据库认会创建一个postgres数据库用户作为数据库管理员密码为空,值得注意的是,与此同时还生成一个名为postgresLinux系统用户

这里我们介绍两种常用的创建用户数据库方法

2.1使用Postgresql控制台来操作

首先切换到postgres用户

1447846193613527.pngPHP/upload/image/20151118/1447846193613527.png">

使用psql命令登陆Postgresql控制台

1447846193714632.pngPHP/upload/image/20151118/1447846193714632.png">

这时相当于使用系统用户postgres同名的数据库用户的身份登陆数据库,由于初始密码为空所以不需要输入密码,假如系统提示符变成“postgres=#”,表示这时已经进入了数据库控制台。

2.1.1postgres用户设置一个密码

postgres=# alter user postgres with password 'postgres';或者\password postgres

1447846193261132.pngPHP/upload/image/20151118/1447846193261132.png">

2.1.2创建一个数据库用户

postgres=# create user zylhz with password 'zylhz';

1447846193445797.pngPHP/upload/image/20151118/1447846193445797.png">

2.1.3查看数据库存在的用户密码

postgres=# select * from pg_user;

postgres=# select * from pg_shadow;

1447846194431645.pngPHP/upload/image/20151118/1447846194431645.png">

1447846193944542.pngPHP/upload/image/20151118/1447846193944542.png">

2.1.4创建数据库

postgres=# create database zylhz;

1447846193426396.pngPHP/upload/image/20151118/1447846193426396.png">

2.1.5创建数据库并指定所有者为zylhz

postgres=# create database zylhzcom owner zylhz;

1447846193264488.pngPHP/upload/image/20151118/1447846193264488.png">

2.1.6查看存在的数据库

postgres=# \l

1447846193290798.pngPHP/upload/image/20151118/1447846193290798.png">

2.1.7zylhzcom数据库的所有权为zylhz

postgres=# grant ALL privileges on database zylhzcom to zylhz;

1447846193144508.pngPHP/upload/image/20151118/1447846193144508.png">

2.1.8切换至zylhz数据库

postgres=# \c zylhz

1447846193751143.pngPHP/upload/image/20151118/1447846193751143.png">

2.1.9创建表并查看已创建的表

zylhz=# create table test (id integer,name text);

1447846193708484.pngPHP/upload/image/20151118/1447846193708484.png">

2.1.10插入数据

zylhz=# insert into test values (2,'zylhzcom');

1447846193727079.pngPHP/upload/image/20151118/1447846193727079.png">

2.1.11退出控制台

zylhz=# \qctrld

2.2使用shell命令行

添加新用户和新数据库,除了在postgresql控制台内,还可以在shell命令行下完成。这里要使用的是Postgresql提供的命令行程序createusercreatedb

2.2.1创建数据库用户,并指定其为超级用户

[root@kvm ~]# sudo -u postgres createuser -W -s zylhz3

2.2.2登陆数据库平台,设置密码

postgres=# \password zylhz3


<a href=图片 1.png" src="http://zylhz.com/ueditor/PHP/upload/image/20151120/1448018583189931.png">

2.2.3创建数据库,并指定所有者

[root@kvm ~]# sudo -u postgres createdb -O zylhz3 zylhzcom1

2.2.4登陆数据库

[root@kvm ~]# psql -d zylhzcom1 -U zylhz3 -h 127.0.0.1 -p 5432

<a href=图片 2.png" src="http://zylhz.com/ueditor/PHP/upload/image/20151120/1448018605135455.png">

createuser命令介绍

createuser创建一个新的Postgresql用户

使用方法

createruser [选项]… [用户名]

选项:


-c,--connection-limit=N角色的连续限制(缺省:没有限制)
-d,--createdb此角色可以创建新数据库
-r,--createrole这个角色可以创建新的角色
-s,--superuser角色将是超级用户
-h,--host=HOSTNAME数据库服务器所在机器的主机名或者套接字目录
-p,--port=PORT数据库服务器端口号
-U,--username=USERNAME联结用户
-W,--password强制提示输入口令
-w,-no-password永远不提示输入口令

createdb命令介绍

createdb创建一个Postgresql数据库

使用方法

created [选项]… [数据库名称] [描述]

选项:

-D,--tablespace=TABLESPACE数据库认表空间
-e,--echo显示发送到服务端的命令
-E,--encoding=ENCODING数据库编码
-O,--owner=OWNER新数据库的所属用户
-h,-no-password永远不提示输入口令

3Postgresql的登陆问题

首先我们前面已经简单演示了postgresql的登陆

[root@kvm ~]# psql -d zylhzcom1 -U zylhz3 -h 127.0.0.1 -p 5432

<a href=图片 3.png" src="http://zylhz.com/ueditor/PHP/upload/image/20151120/1448018617150442.png">

上面命令的参数含义如下:-U指定用户-d指定数据库,-h指定服务器,-p指定端口

输入以上的命令之后,系统会提示输入zylhz3密码,输入正确,就可以登录控制台了。

注意一:

有同学可能会遇到这样的问题:看下图

<a href=图片 4.png" src="http://zylhz.com/ueditor/PHP/upload/image/20151120/1448018625585005.png">

其实这个问题是因为postgresql在认证文件中有一个认证标示需要自己选择配置的,所以这里只需要修改认证文件/var/lib/pgsql/9.4/data/pg_hba.conf即可

[root@kvm ~]# vi /var/lib/pgsql/9.4/data/pg_hba.conf

把这个配置文件中的认证METHODident修改password,可以实现用账户和密码来访问数据库

其中这个认证标示有"trust","reject","md5","password","gss","sspi"这些,你可以按照自己的方式进行设置即可。

注意二:

psql命令存在简写形式。如果当前Linux系统用户,同时也是Postgresql用户,则可以省略用户名-U参数的部分)。举例来说,我的Linux系统用户名zylhz,且Postgresql数据库存在同名用户,则我以zylhz身份登录Linux系统后,可以直接使用下面的命令登录数据库,且不需要密码


4、控制台命令

除了前面已经用到的\password命令(设置密码)和\q命令(退出)以外,控制台还提供一系列其他命令。


\h:查看sql命令的解释,比如\hselect。
\?:查看psql命令列表。
\l:列出所有数据库。
\c[database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d[table_name]:列出某一张表格的结构。
\du列出所有用户。
\e:打开文本编辑器。
\conninfo列出当前数据库和连接的信息。
\password[user]设置用户密码
\q退出

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

相关推荐