PostgreSQL新手入门
一、介绍 PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,Version 4.2为基础的对象关系型数据库管理系统(ORDBMS)。POSTGRES开创的许多概念在很久以后才出现在商业数据库中。PostgreSQL是最初伯克利代码的一个开放源码的继承者。它支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、可更新的视图、事务完整性、多版本并控制。另外,可以用许多方法进行扩展,比如通过增加新的:数据类型、函数、操作符、聚合函数、索引方法、过程语言;并且,因为许可证的灵活,任何人都可以以任何目的免费使用、修改、分发,不管是私用、商用、还是学术研究使用。 二、系统环境系统平台:CentOS release 6.5 (Final) PostgreSQL版本:Postgresql 9.4.5 三、安装方式yum安装 四、安装过程1、yum安装如果是默认yum安装的话,会安装较低版本的PostgreSQL 8.4,这不符合我们的要求。 而这里我们选择使用官方提供的PostgreSQL Yum Repository来安装最新版本的PostgreSQL。
[root@kvm ~]# yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
[root@kvm ~]# yum install postgresql94-server postgresql94-contrib
2、学习使用PostgreSQL初次安装后,PostgreSQl数据库默认会创建一个postgres的数据库用户作为数据库的管理员,默认密码为空,值得注意的是,与此同时还生成了一个名为postgres的Linux系统用户。 这里我们介绍两种常用的创建用户和数据库的方法。 2.1使用PostgreSQL控制台来操作首先切换到postgres用户下 使用psql命令登陆PostgreSQL控制台 这时相当于使用系统用户postgres同名的数据库用户的身份登陆数据库,由于初始密码为空所以不需要输入密码,假如系统提示符变成“postgres=#”,表示这时已经进入了数据库控制台。 2.1.1为postgres用户设置一个密码 postgres=# alter user postgres with password 'postgres';或者password postgres 2.1.2创建一个新数据库用户 postgres=# create user zylhz with password 'zylhz'; 2.1.3查看数据库存在的用户及密码 postgres=# select * from pg_user; postgres=# select * from pg_shadow; 2.1.4创建数据库 postgres=# create database zylhz; 2.1.5创建数据库并指定所有者为zylhz postgres=# create database zylhzcom owner zylhz; 2.1.6查看存在的数据库 postgres=# l 2.1.7赋zylhzcom数据库的所有权为zylhz postgres=# grant ALL privileges on database zylhzcom to zylhz; 2.1.8切换至zylhz数据库 postgres=# c zylhz 2.1.9创建表并查看已创建的表 zylhz=# create table test (id integer,name text); 2.1.10插入数据 zylhz=# insert into test values (2,'zylhzcom'); 2.1.11退出控制台 zylhz=# qctrl+d 2.2使用shell命令行添加新用户和新数据库,除了在postgreSQL控制台内,还可以在shell命令行下完成。这里要使用的是PostgreSQL提供的命令行程序createuser和createdb。 2.2.1创建数据库用户,并指定其为超级用户 [root@kvm ~]# sudo -u postgres createuser -W -s zylhz3 2.2.2登陆数据库平台,设置密码 postgres=# password zylhz3 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 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永远不提示输入口令 3、PostgreSQL的登陆问题首先我们前面已经简单演示了postgresql的登陆 [root@kvm ~]# psql -d zylhzcom1 -U zylhz3 -h 127.0.0.1 -p 5432 上面命令的参数含义如下:-U指定用户,-d指定数据库,-h指定服务器,-p指定端口 输入以上的命令之后,系统会提示输入zylhz3的密码,输入正确,就可以登录控制台了。 注意一:有同学可能会遇到这样的问题:看下图 其实这个问题是因为postgresql在认证文件中有一个认证标示需要自己选择配置的,所以这里只需要修改认证文件/var/lib/pgsql/9.4/data/pg_hba.conf即可 [root@kvm ~]# vi /var/lib/pgsql/9.4/data/pg_hba.conf 把这个配置文件中的认证METHOD的ident修改为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退出 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |