阿小信大人的头像
Life is short (You need Python) Bruce Eckel

PostgreSQL安装配置2014-09-03 03:24

安装PostgreSQL

$ sudo apt-get install postgresql   postgresql-server-dev-9.3   #安装好后默认生成一个名为postgres的数据库和一个名为postgres的数据库用户。这里需要注意的是,同时还生成了一个名为postgresLinux系统用户。
$ sudo -u postgres psql     #修改postgres数据库密码
postgres=# \password postgres
$ sudo passwd postgres        #修改postgres用户密码为postgres

安装客户端管理器:

$ sudo apt-get install -y pgadmin3

创建数据库用户ashin并指定其为超级用户:

sudo -u postgres createuser --superuser ashin
sudo -u postgres psql
\password ashin
\q
sudo -u postgres createdb -O ashin ashin

用户名不加引号,密码必须用单引号

登录数据库:

$ psql -U postgres -h 127.0.0.1
$ psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432

psql命令存在简写形式。如果当前Linux系统用户,同时也是PostgreSQL用户,则可以省略用户名(-U参数的部分).默认用户是当前系统用户名,默认数据库名于当前系统用户名相同。

建立数据库,并指定所有者,数据库名和用户名不能使用单引号,双引号或者不加都行

在外部终端创建数据库:

$ sudo -u postgres createuser -D -P test1  #新建用户test1-D该用户没有创建数据库的权利,-P提示输入密码
$ sudo -u postgres createdb -O test1 db1    # 创建数据库db1-O设定所有者为test1

修改PostgresSQL数据库配置实现远程访问

$ sudo vi /etc/postgresql/9.1/main/postgresql.conf

监听任何地址访问,修改连接权限

#listen_addresses = 'localhost'改为 listen_addresses = '*'

启用密码验证

#password_encryption = on改为password_encryption = on

可访问的用户ip段

$ sudo vi /etc/postgresql/9.1/main/pg_hba.conf

在文档末尾加上以下内容

host all all 0.0.0.0 0.0.0.0 md5

重启PostgreSQL数据库

$ sudo /etc/init.d/postgresql restart

创建新用户ashin,但不给建数据库的权限:

postgres=# create user ashin with password 'ashin' nocreatedb;
CREATE ROLE

创建superuser:

postgres=# create user sentry superuser password 'sentry'; CREATE ROLE

控制台命令:

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

参考:http://blog.sina.com.cn/s/blog_6af33caa0100ypck.html

http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html

PostgreSQL有很多数据类型,表也可以继承

文档:http://doc.zzbaike.com/postgresql/8-1/pgsqldoc-cvs/

CentOS安装Postgresql

查看有哪些可以装的:

yum list postgresql*

安装:

yum install postgresql-server.x86_64 postgresql-plpython.x86_64 postgresql-libs.i686 postgresql-docs.x86_64 postgresql-devel.x86_64 postgresql-contrib.x86_64

初始化data目录:

service postgresql initdb

默认/var/lib/pgsql/data/下是空的。

启动:

systemctl enable postgresql
systemctl start postgresql
systemctl status postgresql
sudo -u postgres psql

创建新用户和数据库:

sudo -u postgres createuser -P itil
sudo -u postgres createdb -O itil test

连接时报错:

sudo -u postgres psql -U itil -d test   
psql: FATAL:  Peer/Ident authentication failed for user "itil"

解决方法:

修改/var/lib/pgsql/data/pg_hba.conf中的

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust 
# IPv6 local connections:
host    all             all             ::1/128                 ident

把METHOD列的值改成trust,重启:systemctl restart postgresql

如果您觉得从我的分享中得到了帮助,并且希望我的博客持续发展下去,请点击支付宝捐赠,谢谢!

若非特别声明,文章均为阿小信的个人笔记,转载请注明出处。文章如有侵权内容,请联系我,我会及时删除。

#数据库#   #postgresql
分享到:
阅读[1735] 评论[0]

你可能也感兴趣的文章推荐

本文最近访客

网友54.*.*.116[火星]2019-04-25 06:01
网友40.*.*.42[美国]2019-04-25 05:35
网友77.*.*.62[捷克]2019-04-25 05:31
网友157.*.*.62[Redmond]2019-04-25 05:27

发表评论