Debian中PostgreSQL数据库安装配置实例

所属分类: 数据库 / PostgreSQL 阅读数: 175
收藏 0 赞 0 分享

用惯了MySQL后,想尝试使用下PostgreSQL,据说这玩意儿也很强大,我在网上搜索了下相关中文书籍,可惜相关书籍远远没有MySQL那么多,不过我在官方找到了由志愿者翻译的文档(参考9.1文档翻译项目),说实话我英文文档阅读能力还是比较纠结的,所以有中文文档当然优先中文了。

在Debian下可以通过apt-get命令直接安装:

复制代码 代码如下:

sudo apt-get install postgresql postgresql-client postgresql-server-dev-all

安装完成后,PostgreSQL默认就创建了名为postgres用户,这个和MySQL的root以及SQL Server的sa账户一样,是超级管理员账户,与MySQL不一样的是,其还创建了postgres的Unix系统账户,和SQL Server的master数据库一样,PostgreSQL的默认数据库是template1,你可以用命令行管理工具psql来管理它,当然前提是要切换到postgres的系统账户:

复制代码 代码如下:

# su - postgres
$ psql

或者你可以通过sudo来一步到位的以postgres身份运行psql,省得切换来切换去:

复制代码 代码如下:
sudo su postgres -c psql template1

完成上述命令后你就应该可以看到操作数据库的命令界面了,注意\q是退出命令,每句SQL语句以英文分号结束。如果要连接指定的数据库请使用形如\c databasename的命令。

好,让我们输入\q先退出这个命令界面,接下来我们需要创建一个普通账户,因为建议不直接用超级管理员postgres账户来操作我们自己的数据库。

首先创建名为mypguser的系统账户。

复制代码 代码如下:
sudo adduser mypguser

其次使用postgres连接template1并进入psql命令界面:
复制代码 代码如下:
sudo su postgres -c psql template1

创建新的数据库用户、新数据库,并赋予新用户新数据库的全部权限:
复制代码 代码如下:
postgres=# CREATE USER mypguser WITH PASSWORD 'mypguserpass';
postgres=# CREATE DATABASE mypgdatabase;
postgres=# GRANT ALL PRIVILEGES ON DATABASE mypgdatabase to mypguser;

当然上述的操作可以分别以shell命令createuser mypguser以及createdb mypgdatabase来实现:

复制代码 代码如下:

# createuser mypguser    #from regular shell
# su - mypguser
$ psql postgres
postgres=# CREATE DATABASE mypgdatabase;

完成这些后让我们使用\q命令退出psql控制台。

复制代码 代码如下:
postgres=# \q

下面我们就可以用指定账户管理我们的数据库了:
复制代码 代码如下:

sudo su mypguser -c 'psql -d mypgdatabase'

等等,我们还有最重要的一步就是重置我们的postgres账户密码,通过下面的命令:

复制代码 代码如下:

sudo su postgres -c psql template1
template1=# ALTER USER postgres WITH PASSWORD 'yourpassword'
template1=# \q

不要忘了还有系统账户的密码:
复制代码 代码如下:
sudo passwd -d postgres

好了,到这里简单的安装及创建账户已经讲解完毕了,介绍一下可能的错误:

如果出现下面的错误:

复制代码 代码如下:

psql: FATAL:  Ident authentication failed for user "mypguser"

请编辑你的pg_hba.conf,这个文件一般位于/etc/postgresql/X.Y/main/pg_hba.conf,X.Y是你的PostgreSQL的版本号,将下面行的peer改为trust:

复制代码 代码如下:
local   all    all    trust     # replace ident or peer with trust

如果出现下面的错误:
复制代码 代码如下:

psql: FATAL: Peer authentication failed for user "mypguser"


请仍然修改pg_hba.conf文件,该下面行的peer为md5:

复制代码 代码如下:
local   all    all    md5       # replace peer with md5

完成上面的修改后请重新加载postgresql:
复制代码 代码如下:

/etc/init.d/postgresql reload

更多精彩内容其他人还在看

PostgreSQL教程(三):表的继承和分区表详解

这篇文章主要介绍了PostgreSQL教程(三):表的继承和分区表详解,本文讲解了多表继承、 继承和权限、什么是分区表、分区表实现、分区和约束排除等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

PostgreSQL教程(四):数据类型详解

这篇文章主要介绍了PostgreSQL教程(四):数据类型详解,本文讲解了数值类型、字符类型、布尔类型、位串类型、数组、复合类型等数据类型,需要的朋友可以参考下
收藏 0 赞 0 分享

PostgreSQL教程(五):函数和操作符详解(1)

这篇文章主要介绍了PostgreSQL教程(五):函数和操作符详解(1),本文讲解了逻辑操作符、比较操作符、数学函数和操作符、三角函数列表、字符串函数和操作符等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

PostgreSQL教程(六):函数和操作符详解(2)

这篇文章主要介绍了PostgreSQL教程(六):函数和操作符详解(2),本文讲解了模式匹配、数据类型格式化函数、时间/日期函数和操作符等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

PostgreSQL教程(七):函数和操作符详解(3)

这篇文章主要介绍了PostgreSQL教程(七):函数和操作符详解(3),本文讲解了序列操作函数、条件表达式、数组函数和操作符、系统信息函数、系统管理函数等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

PostgreSQL教程(八):索引详解

这篇文章主要介绍了PostgreSQL教程(八):索引详解,本文讲解了索引的类型、复合索引、组合多个索引、唯一索引、表达式索引、部分索引等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

PostgreSQL教程(九):事物隔离介绍

这篇文章主要介绍了PostgreSQL教程(九):事物隔离介绍,本文主要针对读已提交和可串行化事物隔离级别进行说明和比较,需要的朋友可以参考下
收藏 0 赞 0 分享

PostgreSQL教程(十):性能提升技巧

这篇文章主要介绍了PostgreSQL教程(十):性能提升技巧,本文讲解了使用EXPLAIN、批量数据插入、关闭自动提交、使用COPY、 删除索引、删除外键约束等技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

PostgreSQL教程(十一):服务器配置

这篇文章主要介绍了PostgreSQL教程(十一):服务器配置,本文讲解了服务器进程的启动和关闭、服务器配置、内存相关的参数配置等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

PostgreSQL教程(十二):角色和权限管理介绍

这篇文章主要介绍了PostgreSQL教程(十二):角色和权限管理介绍,本文讲解了数据库角色、角色属性、权限、角色成员,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多