取势 明道 优术

PostgreSQL 0 views

作者为 扶 凯 发表

介绍

PostgreSQL 是一个非常不错的替换 MySQL 的方案,和 MySQL 一样是一个通常的关系型数据库,以前我并没有使用过这个,所以对于这个我也是个新手,但是因为 Mojolicious 的作者超级喜欢这个,并且春哥也喜欢这个,还有近来的项目大量使用到 Minion 来做队列服务,这个服务原生的只支持 PostgreSQL(MySQL 的支持不太好用), 所以没法只能自己研究来安装和使用。实在因为使用不一样,所以特地记下这个笔记。

这个文章写的记录是基于最新的 PostgreSQL 9.5 .因为最新的 Minion 要求必须使用 9.5. Minion 也非常好用,接下来写个 Minion 的介绍。

 

安装 PostgreSQL

默认 PostgreSQL 和 Nginx 之类开源软件一样,有自己的 yum 源,所以直接 download page, 来找最新的源就好了。

我是使用 Centos 6. 所以这下 64 的。

rpm -ivh https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-centos95-9.5-2.noarch.rpm
 
我们使用下面的命令来进行安装,因为我们要装 Minion 的库,所以我们需要装 postgresql95-devel 这个包。
yum install postgresql95-server postgresql95-contrib postgresql95-devel

安装完后初始化 postgresql 数据库:

 CentOS 6:
service postgresql-9.5 initdb
CentOS 7 :
/usr/pgsql-9.5/bin/postgresql95-setup initdb
接下来,启动 postgresql 数据库,并让它能自动启动。重起的话,给 start 变成 restart 就好。 
CentOS 6:
service postgresql-9.5 start
chkconfig postgresql-9.5 on
CentOS 7 :
systemctl enable postgresql-9.5
systemctl start postgresql-9.5

 

通过命令提示符来操作 PostgreSQL 

 

在 PostgreSQL 中有个默认的数据库的用户名 “postgres”,我们要切到这个用户然后才能对 postgresql 进行相关的操作,这个和 MySQL 本身也是非常大的区分的地方,让我很不习惯。

su - postgres

进入 postgresql 然后输入下面的命令,启动 pg 的客户端

psql

会输出如下内容:

psql (9.5.0)
Type "help" for help.
postgres=#

直接使用 \q 就能退出这个客户端,返回到终端。

 

设置“postgres”用户的密码

接着进入 postgresql 的终端,

su - postgres
psql

通过下面的方式来设置密码

postgres=# \password postgres 
Enter new password: 
Enter it again: 
postgres=# \q

 

创建新的用户和数据库的方式

 

例如,我们在这要使用 Minion  ,所以我们来创建一个叫 minion 的用户,并且创建一个叫 minion_jobs 的数据库

接着还是要切换到 postgres 的用户:

su - postgres

创建 minion 用户.

$ createuser minion

创建数据库:

$ createdb minion_jobs
接着还是要进入 psql 的终端,来设置密码和分权限,我这使用的默认密码是 'postgres'
$ psql
psql (9.5.0)
Type "help" for help.
postgres=# alter user minion with encrypted password 'postgres';
ALTER ROLE
postgres=# grant all privileges on database minion_jobs to minion;
GRANT
postgres=#\q

如果我们要删除用户和数据库

要删除数据库和用户也一样,要切到这个 postgres 的用户:

su - postgres

输入命令:

$ dropdb <database-name>

如果要删除用户,直接使用 dropuser 命令就好:

$ dropuser <user-name>

配置 PostgreSQL-MD5 的客户端访问

如果要使用客户端来连接 PostgresSQL 需要打开 MD5 的加密,因为默认给客户端都是 MD5 加密。所以我们可以编辑 /var/lib/pgsql/9.5/data/pg_hba.conf 这个文件:j

#vim /var/lib/pgsql/9.5/data/pg_hba.conf

 

修改下面显示的这些行

[...]
# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             192.168.1.0/24          md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
[...]

 

重起 postgresql 的服务,让配置生效

配置 PostgreSQL-配置通过 TCP/IP 的网络来访问

 

在 PostgreSQL 中,默认是不能使用 TCP/IP 来连接的,这点和 MySQL 的区别比较大,所以其它的用户和电脑并不能连接到 access 中. 你需要要实现这个功能,需要打开这个功能,这时要编辑  /var/lib/pgsql/9.5/data/postgresql.conf 这个文件.

#vim /var/lib/pgsql/9.5/data/postgresql.conf
找到下面的这个内容:
[...]
#listen_addresses = 'localhost'
[...]
#port = 5432
[...]

先删除前面的注释,然后设置 IP 地址这个为你想让  postgresql server 对外提供访问的地址,或者设置为  ‘*’ 来让所有的人都可以访问.

listen_addresses = '*'
port = 5432

然后重起 postgresql 的服务,让配置生效. 

 

如果安装 cpan 的 DBI 模块,可能需要 ln -s /usr/pgsql-9.5/bin/pg_config /usr/bin/

 英文来源: http://www.unixmen.com/postgresql-9-4-released-install-centos-7/

来了就留个评论吧! 没有评论