怎样修改Linux服务器的主机名

2018年8月10日 由 Amon 没有评论 »

参考:https://www.vultr.com/docs/how-to-change-your-hostname-on-centos
参考:http://www.cnblogs.com/kerrycode/p/3595724.html

【临时修改】

输入命令:

hostname EPP-Server

这个修改只能临时有效,机器重启又还原了。

【永久修改】

编辑:/etc/hosts

nano /etc/hosts

编辑 /etc/sysconfig/network

HOSTNAME=EPP-Server

【测试】

输入命令:

hostname

怎样安装PostgreSQL

2018年8月10日 由 Amon 没有评论 »

【介绍】

PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。

官网:https://www.postgresql.org/
文档:https://www.postgresql.org/docs/
下载:https://www.postgresql.org/download/

最高版本:PostgreSQL 11

【安装】

从yum源安装指定9.6版本:http://amon.org/postgresql
从yum源安装指定11版本:http://amon.org/postgresql11
从源码编译安装指定版本:http://amon.org/postgresql-build
CentOS6上yum安装默认版本:http://amon.org/postgresql-centos6
CentOS7上yum安装默认版本:http://amon.org/postgresql-centos7

【管理】

参考:http://amon.org/phppgadmin

【应用】

DNRS(https://sourceforge.net/projects/dnrs/),要求只能是PostgreSQL 7.4。
下载:https://ftp.postgresql.org/pub/source/v7.4.30/postgresql-7.4.30.tar.gz

CoCCA(https://sourceforge.net/projects/coccaopenreg/),要求是PostgreSQL 8.1或更高。
下载:https://ftp.postgresql.org/pub/source/v8.1.23/postgresql-8.1.23.tar.gz

【yum安装指定版本】

安装 yum 源(地址从 http://yum.postgresql.org/repopackages.php 获取)

安装PostgreSQL11:

yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

更新源信息:

yum update

查看安装包列表:

yum list | grep postgresql

安装PostgreSQL:最核心的是要安装postgresql11-server和postgresql11-contrib,其中”contrib”包里包含了一些常用的组件和方法

yum install postgresql11-server.x86_64 postgresql11-contrib.x86_64 postgresql11-devel.x86_64

卸载命令:

yum remove postgresql11-server.x86_64 postgresql11-contrib.x86_64 postgresql11-devel.x86_64
yum remove postgresql11-libs-11.0-beta2_1PGDG.rhel7.x86_64 postgresql11-11.0-beta2_1PGDG.rhel7.x86_64

安装PostgreSQL9.6:

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

更新源信息:

yum update

查看安装包列表:

yum list | grep postgresql

安装

yum install postgresql96-server.x86_64 postgresql96-contrib.x86_64 postgresql96-devel.x86_64 

主要路径:

参考:https://www.cnblogs.com/qiyebao/p/4562557.html
参考:http://www.cnblogs.com/amboyna/archive/2008/02/16/1070474.html

检查 PostgreSQL 是否已经安装:

rpm -qa | grep postgres

输出:

postgresql11-libs-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-devel-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-server-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-contrib-11.0-beta2_1PGDG.rhel7.x86_64

检查 PostgreSQL 安装位置:

rpm -qal | grep postgres

输出:

/usr/share/doc/postgresql96-9.6.10
/usr/share/doc/postgresql96-9.6.10/COPYRIGHT
/usr/share/doc/postgresql96-9.6.10/KNOWN_BUGS
/usr/share/doc/postgresql96-9.6.10/MISSING_FEATURES
/usr/share/doc/postgresql96-9.6.10/README.rpm-dist
/usr/share/doc/postgresql96-9.6.10/bug.template
/etc/pam.d/postgresql
/usr/lib/systemd/system/postgresql-9.6.service
/usr/lib/tmpfiles.d/postgresql-9.6.conf
/usr/pgsql-9.6/bin/postgres
/usr/pgsql-9.6/bin/postgresql96-check-db-dir
/usr/pgsql-9.6/bin/postgresql96-setup
/usr/pgsql-9.6/share/locale/de/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/es/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/fr/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/id/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/it/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/ja/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/ko/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/pl/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/pt_BR/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/ru/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/sv/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/tr/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/zh_CN/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/man/man1/postgres.1
/usr/pgsql-9.6/share/postgres.bki
/usr/pgsql-9.6/share/postgres.description
/usr/pgsql-9.6/share/postgres.shdescription
/usr/pgsql-9.6/share/postgresql.conf.sample
/var/run/postgresql
/usr/lib64/security/pam_postgresok.so
/usr/share/doc/pam-1.1.8/txts/README.pam_postgresok
/usr/share/man/man8/pam_postgresok.8.gz
/usr/share/augeas/lenses/dist/postgresql.aug
/usr/pgsql-9.6/include/internal/postgres_fe.h
/usr/pgsql-9.6/include/postgres_ext.h
/usr/pgsql-9.6/include/server/postgres.h
/usr/pgsql-9.6/include/server/postgres_ext.h
/usr/pgsql-9.6/include/server/postgres_fe.h
/usr/lib/firewalld/services/postgresql.xml
/usr/pgsql-9.6/share/postgresql-9.6-libs.conf
/usr/pgsql-9.6/lib/postgres_fdw.so
/usr/pgsql-9.6/share/extension/postgres_fdw--1.0.sql
/usr/pgsql-9.6/share/extension/postgres_fdw.control

搜索配置文件路径:

find / -name pg_config

输出:

/usr/pgsql-9.6/bin/pg_config

库文件路径:/usr/pgsql-9.6/lib/
头文件路径:/usr/pgsql-9.6/include/
配置文件路径:/usr/pgsql-9.6/bin/pg_config
可执行文件路径:/usr/pgsql-9.6/bin
数据和配置文件:/var/lib/pgsql/9.6/data

初始化数据库:

/usr/pgsql-9.6/bin/postgresql96-setup initdb

输出:

Initializing database ... OK

设置认证模式:

参考:https://www.postgresql.org/message-id/1220878786.2711.24.camel@laptop.gunduz.org

编辑 /var/lib/pgsql/9.6/data/pg_hba.conf 第81行:

# IPv4 local connections:
host    all             all             127.0.0.1/32            password

管理服务,和其他服务一样还是用systemd进行管理:

自动启动:systemctl enable postgresql-9.6

启动服务:systemctl start postgresql-9.6

重启服务:systemctl restart postgresql-9.6

停止服务:systemctl stop postgresql-9.6

使用postgres用户在PostgreSQL控制台生成其他用户和新数据库:

新建一个Linux新用户 dbuser :

sudo adduser dbuser

修改默认用户postgres的密码:

切换到postgres用户:

sudo su - postgres

返回:

-bash-4.2$

使用psql命令登录PostgreSQL控制台,输入命令:

psql

返回:

psql (9.6.10)
Type "help" for help.

postgres=#

这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为”postgres=#”,表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。

在数据库控制台输入命令:

\password postgres

输入密码,以及重复输入密码:4zAGbSxBOXV9Rnxy

创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码:

CREATE USER dbuser WITH PASSWORD 'M4MLnFKYsNhpwfmv';

返回:CREATE ROLE

创建用户数据库,这里为exampledb,并指定所有者为dbuser:

CREATE DATABASE exampledb OWNER dbuser;

返回:CREATE DATABASE

将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限:

GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;

返回:GRANT

重新启动postgresql的服务:

Ctrl+D 2次,退出数据库控制台。

重启postgresql:

systemctl restart postgresql-9.6

用户 postgres 登录测试:

psql -h 127.0.0.1 -p 5432 -U postgres

返回:

Password for user postgres:

输入密码:4zAGbSxBOXV9Rnxy

返回:

psql (9.6.10)
Type "help" for help.

postgres=#

用户 dbuser 登录数据库 exampledb :

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

返回:

Password for user dbuser:

输入密码:M4MLnFKYsNhpwfmv

返回:

psql (9.6.10)
Type "help" for help.

exampledb=>

怎样安装PostgreSQL11

2018年8月10日 由 Amon 没有评论 »

【介绍】

PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。

官网:https://www.postgresql.org/
文档:https://www.postgresql.org/docs/
下载:https://www.postgresql.org/download/

最高版本:PostgreSQL 11

【安装】

从yum源安装指定9.6版本:http://amon.org/postgresql
从yum源安装指定11版本:http://amon.org/postgresql11
从源码编译安装指定版本:http://amon.org/postgresql-build
CentOS6上yum安装默认版本:http://amon.org/postgresql-centos6
CentOS7上yum安装默认版本:http://amon.org/postgresql-centos7

【管理】

参考:http://amon.org/phppgadmin

【参考】

参考:https://www.jb51.net/article/104829.htm
参考:http://shao-lixin.iteye.com/blog/1921333
参考:http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html
参考:https://blog.csdn.net/wangyezi19930928/article/details/20358369
参考:https://www.cnblogs.com/pengcd/articles/6642222.html
参考:https://www.2cto.com/database/201204/126854.html

【应用】

DNRS(https://sourceforge.net/projects/dnrs/),要求只能是PostgreSQL 7.4。
下载:https://ftp.postgresql.org/pub/source/v7.4.30/postgresql-7.4.30.tar.gz

CoCCA(https://sourceforge.net/projects/coccaopenreg/),要求是PostgreSQL 8.1或更高。
下载:https://ftp.postgresql.org/pub/source/v8.1.23/postgresql-8.1.23.tar.gz

【yum安装指定版本】

安装 yum 源(地址从 http://yum.postgresql.org/repopackages.php 获取)

yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

更新源信息:

yum update

查看是否已经有最新版本的postgresql:

yum list | grep postgresql

安装PostgreSQL:最核心的是要安装postgresql11-server和postgresql11-contrib,其中”contrib”包里包含了一些常用的组件和方法

yum install postgresql11-server.x86_64 postgresql11-contrib.x86_64 postgresql11-devel.x86_64 

主要路径:

参考:https://www.cnblogs.com/qiyebao/p/4562557.html
参考:http://www.cnblogs.com/amboyna/archive/2008/02/16/1070474.html

检查 PostgreSQL 是否已经安装:

rpm -qa | grep postgres

输出:

postgresql11-libs-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-devel-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-server-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-contrib-11.0-beta2_1PGDG.rhel7.x86_64

检查 PostgreSQL 安装位置:

rpm -qal | grep postgres

输出:

/usr/pgsql-11/share/postgresql-11-libs.conf
/usr/pgsql-11/include/internal/postgres_fe.h
/usr/pgsql-11/include/postgres_ext.h
/usr/pgsql-11/include/server/postgres.h
/usr/pgsql-11/include/server/postgres_ext.h
/usr/pgsql-11/include/server/postgres_fe.h
/usr/lib64/security/pam_postgresok.so
/usr/share/doc/pam-1.1.8/txts/README.pam_postgresok
/usr/share/man/man8/pam_postgresok.8.gz
/usr/share/augeas/lenses/dist/postgresql.aug
/usr/share/doc/postgresql11-11.0
/usr/share/doc/postgresql11-11.0/COPYRIGHT
/usr/share/doc/postgresql11-11.0/KNOWN_BUGS
/usr/share/doc/postgresql11-11.0/MISSING_FEATURES
/usr/share/doc/postgresql11-11.0/README.rpm-dist
/usr/share/doc/postgresql11-11.0/bug.template
/etc/pam.d/postgresql
/usr/lib/systemd/system/postgresql-11.service
/usr/lib/tmpfiles.d/postgresql-11.conf
/usr/pgsql-11/bin/postgres
/usr/pgsql-11/bin/postgresql-11-check-db-dir
/usr/pgsql-11/bin/postgresql-11-setup
/usr/pgsql-11/share/locale/de/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/locale/es/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/locale/fr/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/locale/id/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/locale/it/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/locale/ja/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/locale/ko/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/locale/pl/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/locale/pt_BR/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/locale/ru/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/locale/sv/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/locale/zh_CN/LC_MESSAGES/postgres-11.mo
/usr/pgsql-11/share/man/man1/postgres.1
/usr/pgsql-11/share/postgres.bki
/usr/pgsql-11/share/postgres.description
/usr/pgsql-11/share/postgres.shdescription
/usr/pgsql-11/share/postgresql.conf.sample
/var/run/postgresql
/usr/lib/firewalld/services/postgresql.xml
/usr/pgsql-11/lib/postgres_fdw.so
/usr/pgsql-11/share/extension/postgres_fdw--1.0.sql
/usr/pgsql-11/share/extension/postgres_fdw.control

搜索配置文件路径:

find / -name pg_config

输出:

/usr/pgsql-11/bin/pg_config

库文件路径:/usr/pgsql-11/lib/
头文件路径:/usr/pgsql-11/include/
配置文件路径:/usr/pgsql-11/bin/pg_config
可执行文件路径:/usr/pgsql-11/bin
数据和配置文件:/var/lib/pgsql/11/data

初始化数据库:

/usr/pgsql-11/bin/postgresql-11-setup initdb

输出:

Initializing database ... OK

设置认证模式:

参考:https://www.postgresql.org/message-id/1220878786.2711.24.camel@laptop.gunduz.org

编辑 /var/lib/pgsql/11/data/pg_hba.conf 第81行:

# IPv4 local connections:
host    all             all             127.0.0.1/32            password

管理服务,和其他服务一样还是用systemd进行管理:

自动启动:systemctl enable postgresql-11

启动服务:systemctl start postgresql-11

重启服务:systemctl restart postgresql-11

停止服务:systemctl stop postgresql-11

使用postgres用户在PostgreSQL控制台生成其他用户和新数据库:

新建一个Linux新用户 dbuser :

sudo adduser dbuser

修改默认用户postgres的密码:

切换到postgres用户:

sudo su - postgres

返回:

-bash-4.2$

使用psql命令登录PostgreSQL控制台,输入命令:

psql

返回:

psql (11beta2)
Type "help" for help.

postgres=#

这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为”postgres=#”,表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。

在数据库控制台输入命令:

\password postgres

输入密码,以及重复输入密码:4zAGbSxBOXV9Rnxy

创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码:

CREATE USER dbuser WITH PASSWORD 'M4MLnFKYsNhpwfmv';

返回:CREATE ROLE

创建用户数据库,这里为exampledb,并指定所有者为dbuser:

CREATE DATABASE exampledb OWNER dbuser;

返回:CREATE DATABASE

将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限:

GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;

返回:GRANT

重新启动postgresql的服务:

Ctrl+D 2次,退出数据库控制台。

重启postgresql:

systemctl restart postgresql-11

用户 postgres 登录测试:

psql -h 127.0.0.1 -p 5432 -U postgres

返回:

Password for user postgres:

输入密码:4zAGbSxBOXV9Rnxy

返回:

psql (11beta2)
Type "help" for help.

postgres=#

用户 dbuser 登录数据库 exampledb :

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

返回:

Password for user dbuser:

输入密码:M4MLnFKYsNhpwfmv

返回:

psql (11beta2)
Type "help" for help.

exampledb=>

怎样安装phpPgAdmin

2018年8月9日 由 Amon 没有评论 »

【介绍】

phpPgAdmin 是使用PHP开发的管理PostgreSQL的工具。

实证:https://github.com/ReimuHakurei/phppgadmin

实证成功:PHP7.2 + PostgreSQL 9.6 + phpPgAdmin 10.0 (Tomicapo版)

对照:https://github.com/Tomicapo/phppgadmin
对照:https://github.com/phppgadmin/phppgadmin
弃用:http://phppgadmin.sourceforge.net/doku.php

参考:https://www.jb51.net/article/47535.htm
参考:https://blog.csdn.net/wangyezi19930928/article/details/20358369

【安装】

wget https://github.com/ReimuHakurei/phppgadmin/archive/master.zip && unzip master.zip && mv phppgadmin-master psql

【配置】

把 conf/config.inc.php-dist 复制为 conf/config.inc.php

编辑 config.inc.php :

...
	$conf['servers'][0]['host'] = 'localhost';
...
	$conf['extra_login_security'] = false;
...

在浏览器打开phpPgAdmin。

报错:您的 PHP 中没有完整的数据库支持

参考:http://bbs.chinaunix.net/thread-538067-1-1.html

因为编译PHP时没有添加 PostgreSQL 支持,需要重新编译PHP。

参考:https://blog.csdn.net/u011138447/article/details/51224394

参考:http://amon.org/php72

./configure 中添加 PostgreSQL 的安装路径:

yum指定9.6版本安装:–with-pgsql=/usr/pgsql-9.6/ –with-pdo-pgsql=/usr/pgsql-9.6/
yum指定11版本安装:–with-pgsql=/usr/pgsql-11/ –with-pdo-pgsql=/usr/pgsql-11/
yum默认版本安装:–with-pgsql=/usr/lib/pgsql –with-pdo-pgsql=/usr/lib/pgsql

如果不指定,如果configure时报错:

configure: error: Cannot find libpq-fe.h.
wget http://php.net/distributions/php-7.2.8.tar.xz && tar -xvf php-7.2.8.tar.xz && cd php-7.2.8
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=apache --with-fpm-group=apache --disable-debug --with-curl --with-iconv --with-pcre-regex --with-zlib --enable-bcmath --enable-ftp --enable-sockets --enable-mbstring --enable-mbregex --enable-soap --with-xsl --with-openssl --enable-opcache=no --with-mysqli --with-mysql-sock --with-pdo-mysql --enable-mysqlnd --disable-fileinfo --with-gd=/usr/local/gd --enable-gd-jis-conv --with-jpeg-dir=/usr/local/jpeg/lib --with-png-dir=/usr/local/png --with-freetype-dir=/usr/local/freetype --with-libzip=/usr/local/lib64 --enable-zip --with-iconv-dir=/usr/local/lib --with-readline --with-apxs2=/usr/local/apache2/bin/apxs LDFLAGS="-L/usr/lib -lz"
make ZEND_EXTRA_LIBS='-liconv'
make install

重新安装完PHP后重启httpd服务器,即可通过浏览器打开 phpPgAdmin ,报错消失。

报错:Login disallowed for security reasons.

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

编辑:conf/config.inc.php 105行:

	$conf['extra_login_security'] = false;

问题解决。

报错:Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: Ident authentication failed for user “postgres”

编辑:conf/config.inc.php 105行:

# IPv6 local connections:
host    all             all             ::1/128                 trust

问题解决。

报错:Notice: Undefined index

参考:https://sourceforge.net/p/phppgadmin/discussion/115884/thread/bba30f38/

这是因为PHP版本过高导致的问题。

编辑:conf/config.inc.php 添加:

error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);

问题隐藏。

报错:Error Loading all_db.php

参考:https://sourceforge.net/p/phppgadmin/mailman/message/8387927/
参考:https://sourceforge.net/p/phppgadmin/mailman/message/8388313/

这个问题当 PHP5 + PostgreSQL 9.6 时不再出现。

报错:Deprecated: The each() function is deprecated. /psql/libraries/adodb/adodb-error.inc.php on line 106

参考:https://stackoverflow.com/questions/49536453/the-each-function-is-deprecated-cant-figure-out-how-to-change-to-foreach

这是因为 PHP7 不再支持 each() 所导致。使用 Tomicapo 的升级版即可。

报错:Version of PostgreSQL not supported. Please upgrade to version or later.

参考:https://stackoverflow.com/questions/46794672/installing-phppgadmin-5-1-on-ubuntu-16-04-with-postgresql-10-not-supported

官方已经很久没维护了,只支持到 PostgreSQL 9.2,可能支持 PostgreSQL 9.6 。

编辑 classes/database/Connection.php

		switch (substr($version,0,3)) {
			case '10.': return 'Postgres10'; break;
			case '9.6': return 'Postgres96'; break;
			case '9.5': return 'Postgres95'; break;
			case '9.4': return 'Postgres94'; break;
		}

并把 Postgres10.php 复制为 Postgres11.php ,并适应性编辑内容。

然鹅依然实证未遂。

怎样安装PostgreSQL(CentOS7)

2018年8月9日 由 Amon 没有评论 »

【环境】

CentOS版本:

输入命令:

cat /etc/redhat-release 

输出:

CentOS Linux release 7.5.1804 (Core)

输入命令:

uname -a

输出:

Linux vultr.guest 4.17.13-1.el7.elrepo.x86_64 #1 SMP Mon Aug 6 14:16:00 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux

【安装(yum)】

yum安装:

yum install postgresql-server

默认安装:postgresql-server-9.2.23

初始化数据库:

postgresql-setup initdb

输出:

Initializing database ... OK

设置自动启动:

systemctl enable postgresql.service
/bin/systemctl start postgresql.service

设置认证模式:

参考:https://www.postgresql.org/message-id/1220878786.2711.24.camel@laptop.gunduz.org

编辑 /var/lib/pgsql/data/pg_hba.conf ,

# IPv4 local connections:
host    all             all             127.0.0.1/32            password

使用postgres用户在PostgreSQL控制台生成其他用户和新数据库:

新建一个Linux新用户 dbuser :

sudo adduser dbuser

修改默认用户postgres的密码:

切换到postgres用户:

sudo su - postgres

返回:

-bash-4.2$

使用psql命令登录PostgreSQL控制台,输入命令:

psql

返回:

psql (9.2.23)
Type "help" for help.

postgres=#

这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为”postgres=#”,表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。

在数据库控制台输入命令:

\password postgres

输入密码,以及重复输入密码: 4zAGbSxBOXV9Rnxy

创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码:

CREATE USER dbuser WITH PASSWORD 'M4MLnFKYsNhpwfmv';

返回:CREATE ROLE

创建用户数据库,这里为exampledb,并指定所有者为dbuser:

CREATE DATABASE exampledb OWNER dbuser;

返回:CREATE DATABASE

将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限:

GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;

返回:GRANT

重新启动postgresql的服务:

Ctrl+D 2次,退出数据库控制台。

重启postgresql:

/bin/systemctl restart postgresql.service

用户 postgres 登录测试:

psql -h 127.0.0.1 -p 5432 -U postgres

返回:

Password for user postgres:

输入密码:4zAGbSxBOXV9Rnxy

返回:

psql (9.2.23)
Type "help" for help.

postgres=#

用户 dbuser 登录数据库 exampledb :

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

返回:

Password for user dbuser:

输入密码:M4MLnFKYsNhpwfmv

返回:

psql (9.2.23)
Type "help" for help.

exampledb=>