centos7 postgresql?centos镜像
大家好,今天小编来为大家解答centos7 postgresql这个问题,centos镜像很多人还不知道,现在让我们一起来看看吧!
Centos7下安装PostgreSQL14及其基本命令使用
MySQL作为关系型数据库,在互联网公司中被广泛使用。然而,PostgreSQL在国内的普及似乎并不如MySQL。在国外,像Skype这样的网络电话公司大量使用PostgreSQL。
作为互联网从业者,持续学习是必不可少的。因此,我开始学习PostgreSQL作为技术储备。
在Centos下,通常使用YUM来安装PostgreSQL的二进制版本。在PostgreSQL官网选择相应的版本和操作系统后,会自动生成YUM安装脚本。
对应的页面地址为:postgresql.org/download...
选择对应的PostgreSQL版本、操作系统和架构,然后生成YUM安装命令。
但是,有一个问题需要注意。在PostgreSQL初始化数据库后,默认的数据目录是在/var/lib/pgsql,但这个目录位于根分区下。通常建议将其放置在独立的数据目录下。
因此,进行如下操作:
最后,验证安装是否成功。
1、从\l列出的数据库清单中,可以看到有三个数据库。
2、关于PostgreSQL中的用户和角色:
在PostgreSQL中,使用角色来管理权限。可以将一系列权限分配给角色,当然也可以将权限分配给用户。因此,从这个角度理解,PostgreSQL中的用户和角色是相同的,用户也是角色。从上面的\du或\dg的结果中可以得知。
PostgreSQL中的所有命令都是以\开头的。
1、数据库操作:列举数据库\l、连接数据库\c dbname
2、表操作:此外...
3、特殊命令:
3.1、\timing on/off:显示和关闭SQL已执行的时间
3.2、\encoding utf8/gbk:设置客户端的字符编码
3.3、\pset border 0/1/2:设置输出的格式
3.4、\x:类似MySQL的命令后添加\G
3.5、\i filename:执行存储在外部文件中的sql文件或命令,参数是文件名,不带后缀
当然,想要查看更多命令及其用法,可以使用\?
如果有在学习PostgreSQL的朋友,可以一起交流学习。
如何在CentOS 7/6.5/6.4 下安装PostgreSQL 9.3 与 phpPgAdmin
PostgreSQL是一个强大开源的对象关系类型数据库系统,它能运行于几乎所有主要的操作系统,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS、Solaris、Tru64)、Windows OS。在这篇教程里,我们将学习如何在CentOS7/6.5/6.4 server中建立PostgreSQL。
1.安装PostgreSQL
首先根据你的服务器架构添加PostgreSQL库:
对CentOS 6.x 32bit:
rpm-Uvh 1.noarch.rpm
对CentOS 6.x 64bit:
rpm-Uvh
对CentOS 7 64bit:
rpm-Uvh
对于其它的发行版,可查看以下链接并建立库:
使用以下命令来更新库:
yum update
使用以下命令来安装PostgreSQL:
yum install postgresql93-server postgresql93-contrib
使用以下命令来初始化PostgreSQL数据库:
在CentOS 6.x系统中:
service postgresql-9.3 initdb
在CentOS 7系统中:
/usr/pgsql-9.3/bin/postgresql93-setup initdb
然后启动PostgreSQL服务并使之开机自启:
在CentOS 6.x系统中:
service postgresql-9.3 start
chkconfig postgresql-9.3 on
在CentOS 7系统中:
systemctl enable postgresql-9.3
systemctl start postgresql-9.3
2.调整Iptables/Firewall
接下来调整防火墙出站规则:
在CentOS 6.x系统中:
vi/etc/sysconfig/iptables
并添加以下行
-A INPUT-m state--state NEW-m tcp-p tcp--dport 5432-j ACCEPT
-A INPUT-m state--state NEW-m tcp-p tcp--dport 80-j ACCEPT
退出并保存文件。重启iptables服务:
service iptables restart
在CentOS系统中:
firewall-cmd--permanent–add-port=5432/tcp
firewall-cmd--permanent–add-port=80/tcp
firewall-cmd--reload
3.访问PostgreSQL常用的命令提示符
默认情况下数据库名和用户名都是postgres。切换至用户以执行相关操作:
su– postgres
输入以下命令登陆:
psql
会有以下样例输出:
psql(9.3.5)
Type"help" for help.
Postgres=#
可通过输入\q退出postgresql返回命令终端:
4.设置用户密码
登陆至postgres命令提示符界面
su– postgres
psql
然后使用命令设置密码
postgres=#\password postgres
Enter new password:
Enter it again:
postgres=#\q
输入命令以建立PostgreSQL系统管理工具
postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
5.创建用户和数据库
例如:用户名:senthil密码:centos数据库名:mydb
转到postgres用户
su– postgres
创建用户senthil
$ createuser senthil
创建数据库
$ createdb mydb
现在登陆至psql提示符界面,为用户senthil设置密码及授权对数据库mydb的访问:
$ psql
psql(9.3.5)
Type"help" for help.
postgres=# alter user senthil with encrypted password'centos';
ALTER ROLE
postgres=# grant all privileges on database mydb to senthil;
GRANT
postgres=#
6.删除用户和数据库
首先转到postgres界面
su– postgres
输入命令
$ dropdb<database-name>
删除用户名可输入
$ dropuser<user-name>
7.配置PostgreSQL-MD5认证
MD5认证需要客户端提供一个MD5-encrypted密码以便身份验证。你需要编辑/var/lib/pgsql/9.3/data/pg_hba.conf文件:
vi/var/lib/pgsql/9.3/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服务以应用更改
在CentOS 6.x系统中
service postgresql-9.3 restart
在CentOS 7系统中
systemctl restart postgresql-9.3
8.配置PostgreSQL-Configure TCP/IP
默认情况下,TCP/IP连接是不可行的,所以其他计算机用户不能连接到postgresql。编辑文件/var/lib/pgsql/9.3/data/postgresql.conf可以允许连接:
vi/var/lib/pgsql/9.3/data/postgresql.conf
找到下面的行:
[...]
#listen_addresses='localhost’
[...]
#port= 5432
[...]
把两行都取消并设置为你的postgresql服务器IP地址或设置为“*”监听所有客户端。如下所示:
listen_addresses='*'
port= 5432
重启以应用更改
在CentOS6.x系统中:
/etc/init.d/postgresql-9.3 restart
在CentOS7系统中:
systemctl restart postgresql-9.3
9.使用phpPgAdmin管理PostgreSQL
phpPgAdmin是使用PHP编写的基于web的管理工具,用于管理PostgreSQL。它只适用与PostgreSQL RPM库。
如果你没有添加PostgreSQL库,你可以添加EPEL库。
可根据下面的链接在CentOS 6.x中建立EPEL库
CentOS 7的话参考下面的链接
使用命令更新库
yum update
现在输入命令安装phpPgAdmin:
yum install phpPgAdmin httpd
注意phpPgAdmin区分大小写,要准确使用上面所示的大小写!
默认你可以使用访问phpPgAdmin。若要远程访问需要继续:
编辑文件/etc/httpd/conf.d/phpPgAdmin.conf
vi/etc/httpd/conf.d/phpPgAdmin.conf
修改如下加粗的部分:
[...]
Alias/phpPgAdmin/usr/share/phpPgAdmin
<Location/phpPgAdmin>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
#Require host example.com
</IfModule>
<IfModule!mod_authz_core.c>
# Apache 2.2
Order deny,allow
Allow from all
# Allow from.example.com
</IfModule>
</Location>
启动或重启Apache服务
在CentOS 6.x系统中
service httpd start
chkconfig httpd on
在CentOS 7系统中
systemctl enable httpd
systemctl start httpd
现在打开浏览器并转到。终于看到下面的界面了!
使用你之前创建的用户登录,我的是用户senthil密码CentOS。
你可能会遇到:Login failed。
这是因为SELLinux可能限制用户连接到PostgreSQL,只需输入以下命令更改即可:
setsebool-P httpd_can_network_connect_db 1
现在你应该能正常登录了。
CentOS7 单机运行多个PostgreSQL 实例
在 CentOS7单机上运行多个 PostgreSQL实例,可以通过分步骤进行操作实现。
首先,使用 yum命令安装 PostgreSQL13-server。这一步是创建实例的基础。
接着,通过不同的文件初始化不同实例的数据目录。默认实例的数据目录可通过默认安装的 postgresql-13.service文件创建,而第二个实例数据目录则使用 postgresql-13-secondary.service文件创建。
为了确保每个实例独立运行,需要对两个实例的数据目录进行初始化。这样,每个实例都能拥有自己的数据存储。
紧接着,修改两个实例的配置文件。实例1的配置文件和实例2的配置文件有所不同。根据需要,分别对两个实例的 postgresql.conf和 pg_hba.conf文件进行个性化的修改,以满足不同实例的特殊需求。
然后,分别启动两个实例。通过终端命令启动实例,确保它们能正常运行。
为了提高系统运行效率,设置实例开机自启,使得系统启动时自动启动 PostgreSQL实例。
最后,设定多实例 PostgreSQL的连接方式。创建两个数据库实例,分别监听 5431和 5432两个端口,以实现多实例的并发访问。本地连接默认允许用户 postgres用户连接,如不指定端口,则默认连接 5432端口。同时,允许 postgres用户远程连接数据库,以增强系统的灵活性和实用性。
通过以上步骤,您将成功在 CentOS7单机上创建并运行多个 PostgreSQL实例,实现数据库的高效管理与部署。