科探空谷
  • Home
  • zhimind home
  • Categories
  • Tags
  • Archives
  • 留学
    • 学校库
    • 专业库
    • 研究方向与招生
    • 工具
    • GPA计算器
    • 脑洞背单词
    • 脱口而出

CentOS配置-PostgreSQL安装

目录

  • 下载安装
  • 初始化
  • 启动
  • 配置
  • 防火墙
  • 用户
    • 连接数据库
    • 用户密码
  • 注意
  • 用户权限文件
    • 示例
    • 简短说明
  • 创建数据库
  • 配置文件
  • 本地端口转发
目录

下载安装¶

curl -O https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm //视版本而定
rpm -ivh pgdg-centos96-9.6-3.noarch.rpm
yum -y install postgresql96-server postgresql96-contrib

初始化¶

/usr/pgsql-9.6/bin/postgresql96-setup initdb
或
service postgresql-9.6 initdb  //好像成功率不高,推荐上面那条

修改

/etc/sysconfig/pgsql/postgresql-9.6 端口和数据路径,

例:

PGPORT=5432
PGDATA=/pgdata96

启动¶

service postgresql-9.6 start
chkconfig postgresql-9.6 on
service postgresql-9.6 restart // 我之前就忘了加版本

配置¶

vi /var/lib/pgsql/9.6/datapostgresql.conf
listen_addresses = '*' // 如果要远程连接的话,需要重启
#port = 5432 // 默认不用动

防火墙¶

firewall-cmd --add-service=postgresql --permanent
firewall-cmd --reload

用户¶

连接数据库¶

su - postgres
psql

或

psql -U postgres -h localhost

用户密码¶

CREATE USER sndnyang WITH PASSWORD 'yourpassword';
ALTER USER sndnyang PASSWORD 'yournewpassword';

注意¶

  1. 关键字推荐用大写(小写可能出错?)
  2. 记住要用 ; 结束一句命令,psql提示符对换行很不明显:
    postgres=# ALTER USER sndnyang PASSWORD '没有分号结尾' postgres-# 左边变化确实不明显,^C

用户权限文件¶

vi /var/lib/pgsql/9.6/data/pg_hba.conf

示例¶

local   all             postgres                                ident(peer也行)  // 建议保留一行这个
local   all             all                                     md5
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

修改后,重启服务

service postgresql-9.6 restart

简短说明¶

MD5 表示密码用 md5 登陆(推荐这个而不是 password),
sqlalchemy 自动使用md5, psycopg2 不会自动,所以会出现各种认证问题,

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL:  password authentication failed for user "postgres" // 密码错误
ident authentication failed for user "postgres" // 忘了
fe_sendauth: no password supplied  // 没给密码

创建数据库¶

 CREATE DATABASE dbname WITH OWNER=sndnyang ENCODING='UTF8';

配置文件¶

/var/lib/pgsql/9.6/datapostgresql.conf // 远程连接侦听
/var/lib/pgsql/9.6/data/pg_hba.conf    // 用户权限
/etc/sysconfig/pgsql/postgresql-9.6    // 初始配置

本地端口转发¶

port forward利用SSH

ssh -L <local port>:<remote host>:<remote port> <SSH hostname>

例:

ssh -L 5433(想在本地侦听的端口):your_host_ip(远程IP或域名):5432(远程端口,这里指服务器上PostgreSQL的端口)  user@your_host_ip(远程IP或域名)

Published

8月 28, 2017

Category

数据库

Tags

  • Linux 8
  • postgresql 2
  • web 11

Stay in Touch

  • Powered by Pelican. Theme: Elegant by Talha Mansoor