PostgreSQL数据库安装,基于版本10.5.1安装,
在Linux系统上使用*.gz二进制压缩包手动安装。
安装包: postgresql-10.5.1-linux-x64-binaries.tar.gz
tar包百度网盘地址
提取码:f55w
groupadd postgres //添加组成员
useradd -g postgres postgres //添加用户
passwd postgres //重置密码
①. 进入下载目录
//解压完成后会自动生成pgsql目录
tar -zxvf postgresql-10.1-linux-x64-binaries.tar.gz -C /opt
②. 创建data目录:
//在pgsql下创建data目录
mkdir -p /opt/pgsql/data
//在pgsql下创建log目录
mkdir -p /opt/pgsql/log
③. 授权:
//给pgsql目录授权postgres用户权限 root用户给普通用户授权
chown -R postgres.postgres pgsql
④. 这里如果不授权,后面初始化时候会报权限错误:
fixing permissions on existing directory /data/service/postgresql/data … initdb: could not change permissions of directory “/data/service/postgresql/data”: Operation not permitted
//进入postgres用户
su - postgres
//进入pgsql的bin目录 bin目录可以开启关闭进入数据库
cd /opt/pgsql/bin
//初始化数据库
//-E 设置编码格式 -D 设置刚才创建的数据目录
./initdb -E utf8 -D /opt/pgsql/data
①. 使用postgres用户在/opt/pgsql/bin目录启动
//启动方式1
cd /opt/pgsql/bin
./pg_ctl -D /opt/pgsql/data/ > /opt/pgsql/log/postgres.log start
//启动方式2
./postgres -D /opt/pgsql/data/ > /opt/pgsql/log/postgres.log &
②. 登录数据库:
[postgres@server2 bin]$ ./psql
psql.bin (10.5.1)
Type "help" for help.
postgres=#
③. 到此postgresql安装完成,可以开始正常服务,大家如果想创建自己的数据库,用户和密码可以使用:
验证使用:
添加新用户和创建数据库
postgres=# create user csz with password '123';
CREATE ROLE
postgres=# create database test with encoding='utf8' owner=csz;
CREATE DATABASE
④. 验证登录
// -u 用户 -d 数据库
[postgres@server2 bin]$ ./psql -U csz-d test
psql.bin (10.5.1)
Type "help" for help.
test=>
vim /opt/pgsql/postgresql.conf
修改为如下:
listen_addresses = '*'
port = 5432
说明:PostgreSQL安装完成后,默认是只接受来自本机localhost的连接请求,
listen_addresses设置为 * 来允许数据库服务器监听来自任何主机的连接请求,
并且对外提供的服务端口是5432(默认端口)。
vim /opt/pgsql/pg_hba.conf
在文件最下方添加如下配置:
host all all 0.0.0.0/0 trust
说明:上面的配置允许任意IP和用户访问该数据库,
建议仅用作测试时使用,在公网需要考虑安全问题。
也可以指定ip进行访问
host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5
其中,数字24是子网掩码,表示允许192.168.1.0–192.168.1.255的计算机访问!
//配置完成后重启PostgreSQL,使配置生效
cd /opt/pgsql/bin
./pg_ctl -D /opt/pgsql/data restart
有网可以装防火墙
yum install firewalld systemd -y
①. 查看已经开放的端口
firewall-cmd --list-ports
②. 开放5432端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent
③. 重启防火墙
systemctl reload firewalld
④. 防火墙命令
//状态
systemctl status firewalld
//启动
systemctl start firewalld
//关闭
systemctl stop firewalld
①. 导入sql
//进入postgreSQLbin目录
//-U postgres 用户名 使用postgres用户进行导入 test数据库名称 test.sql数据库文件位置
psql -h 127.0.0.1 -U postgres test < test.sql
②. 导出sql
//-U testuser 用户名 test数据库名称 保存数据库文件位置
psql -h 127.0.0.1 -U testuser test > /home/test.sql
//进入 容器
docker exec -it postgres /bin/bash
//将当前root切换成postgres
su postgres
输入用户名,密码再命令执行完后,再根据提示输入
psql -U postgres -W
输入密码,登录成功