postgresql 数据库在linux 安装
1.下载版本
pgsql有很多类型的包,对于不同linux发行版都有对应的编译好的包,安装很方便,另外如果对于通用的linux平台可以编译源码安装或者安装官方编译好的二进制包,源码包的安装仅仅比二进制安装多出一个编译步骤,其余的都一样,所以这里使用安装方式是安装编译好的二进制包
pgsql官网地址:https://www.postgresql.org/,进入后点击download就来到下载页,这里点击Linux下面的Other Linux选项,然后点击下方的tar.gz archive下载二进制归档,我只介绍二进制安装方式
2.然后就来到最终的pgsql下载页了,地址为:https://www.enterprisedb.com/download-postgresql-binaries,如下图下载最新版本的10.1 注意你的Linux是什么版本的
3.解压数据库并放到指定目录:
tar -xvzf postgresql-10.1-1-linux-x64-binaries.tar.gz
# 解压出来之后目录为pgsql 移动文件夹到自己的安装目录 我的安装目录在 /usr/local/pgsql/
mv pgsql/ /usr/local/pgsql/
4.创建pgsql用户并设置密码:
useradd postgres passwd postgres # 两次输入密码并确认
5.注意:这里设置密码是linux用户postgres的登录密码,不是pgsql服务器的密码
创建pgsql数据目录: mkdir /usr/local/pgsql/data
给postgres用户授权目录访问权限: chown postgres /usr/local/pgsql/data
然后切换到postgres用户来操作数据库,pgsql数据库就以postgres为默认用户,执行: su - postgres 切换
6.设置pg 的环境变量,从而使用pg_ctl工具来启动pg 分别执行以下命令(在postgres用户下操作)
PATH=$PATH:$HOME/.local/pgsql/bin:$HOME/pgsql/bin:/usr/local/pgsql/pgsql/bin
export PGDATA=/usr/local/pgsql/data
export PATH
7.执行pg_ctl --help 查看这个命令是否正常执行正常执行,如下图 如果不是请检查环境变量配置
启动命令和重启命令如上图截图 pg_ctl start 启动 ; pg_ctl stop 停止 ;pg_ctl restart 重启;
8.启动之前请确认自己的 数据目录是否授权 我的数据目录是 usr/local/pgsql/data/
chmod -R 0700 /usr/local/pgsql/data/
9.启动pg服务 pg_ctl start
检测是否启动成功 pg_ctl status 如下图表示启动成功
10.使用psql进入数据库
设置连接用户密码 alter user pguser with password 'new password';
11设置远程登录
配置远 程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf。
pg_hba.conf:配置对数据库的访问权限,
postgresql.conf:配置PostgreSQL数据库服务器的相应的参数。
下面 介绍配置的步骤:
1.修改pg_hba.conf文件,配置用户的访问权限(#开头的行是注释内容):
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 trust
其中,第7条是新添加的内容,表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。
其中,第8条是新添加的内容,表示允许所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。
其中,数字24是子网掩码,表示允许192.168.1.0--192.168.1.255的计算机访问!
2.修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。
定位到#listen_addresses=’localhost’。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请 求。
将行开头都#去掉,将行内容修改为listen_addresses=’*'来允许数据库服务器监听来自任何主机的连接请求3.
3.测试连接
psql -h ip -U postgres -d postgres -p 5432
12 设置完远程连接密码之后 设置防火墙端口 pg 端口默认是5432
我是将服务器的防火墙直接关闭了 由于服务器是阿里云服务器需要在阿里云控制台添加防火墙白名单
至此结束