服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - PostgreSQL - Debian中PostgreSQL数据库安装配置实例

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

2020-04-24 15:55PostgreSQL教程网 PostgreSQL

这篇文章主要介绍了Debian中PostgreSQL数据库安装配置实例,一个简明教程,需要的朋友可以参考下

用惯了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

 

延伸 · 阅读

精彩推荐
  • PostgreSQLRDS PostgreSQL一键大版本升级技术解密

    RDS PostgreSQL一键大版本升级技术解密

    一、PostgreSQL行业位置 (一)行业位置 在讨论PostgreSQL(下面简称为PG)在整个数据库行业的位置之前,我们先看一下阿里云数据库在全球的数据库行业里的...

    未知1192023-05-07
  • PostgreSQL分布式 PostgreSQL之Citus 架构

    分布式 PostgreSQL之Citus 架构

    节点 Citus 是一种 PostgreSQL 扩展,它允许数据库服务器(称为节点)在“无共享(shared nothing)”架构中相互协调。这些节点形成一个集群,允许 PostgreSQL 保存比单...

    未知802023-05-07
  • PostgreSQLPostgreSQL标准建表语句分享

    PostgreSQL标准建表语句分享

    这篇文章主要介绍了PostgreSQL标准建表语句分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    码上得天下7962021-02-27
  • PostgreSQLpostgresql 数据库中的数据转换

    postgresql 数据库中的数据转换

    postgres8.3以后,字段数据之间的默认转换取消了。如果需要进行数据变换的话,在postgresql数据库中,我们可以用"::"来进行字段数据的类型转换。...

    postgresql教程网12482021-10-08
  • PostgreSQLPostgresql查询效率计算初探

    Postgresql查询效率计算初探

    这篇文章主要给大家介绍了关于Postgresql查询效率计算的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Postgresql具有一定的参考学习价...

    轨迹4622020-05-03
  • PostgreSQLPostgresql开启远程访问的步骤全纪录

    Postgresql开启远程访问的步骤全纪录

    postgre一般默认为本地连接,不支持远程访问,所以如果要开启远程访问,需要更改安装文件的配置。下面这篇文章主要给大家介绍了关于Postgresql开启远程...

    我勒个去6812020-04-30
  • PostgreSQLpostgresql 中的to_char()常用操作

    postgresql 中的to_char()常用操作

    这篇文章主要介绍了postgresql 中的to_char()常用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    J符离13432021-04-12
  • PostgreSQL深入理解PostgreSQL的MVCC并发处理方式

    深入理解PostgreSQL的MVCC并发处理方式

    这篇文章主要介绍了深入理解PostgreSQL的MVCC并发处理方式,文中同时介绍了MVCC的缺点,需要的朋友可以参考下 ...

    PostgreSQL教程网3622020-04-25