pgsql安装与基本配置以及本地远程访问华为云pg

Posted 健身小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pgsql安装与基本配置以及本地远程访问华为云pg相关的知识,希望对你有一定的参考价值。

  1. 下载软件包
    https://www.postgresql.org/
    下载对应linux版本,查看版本命令

uname -a (Linux查看版本当前操作系统内核信息)
cat /proc/cpuinfo (Linux查看cpu相关信息,包括型号、主频、内核信息等)
在这里插入图片描述
我这里下载的是x86-64的包 目前我下载的版本是10.17-binaries版本
在这里插入图片描述
2. 安装并初始化

解压数据库并放到指定目录:

tar -xvzf postgresql-10.17-1-linux-x64-binaries.tar.gz
#解压出来之后目录为pgsql
移动到pgsql_data是后面生成的见步骤在这里插入图片描述

mv pgsql/ /monchickey/

创建pgsql用户并设置密码:

useradd postgres
passwd postgres
两次输入密码并确认注意:这里设置密码是linux用户postgres的登录密码,不是pgsql服务器的密码
创建pgsql数据目录: mkdir /monchickey/pgsql_data
给postgres用户授权目录访问权限: chown postgres /monchickey/pgsql_data/
后切换到postgres用户来操作数据库,pgsql数据库就以postgres为默认用户,执行: su - postgres 切换

切换之后建议修改~/.bash_profile将pgsql的bin目录加至环境变量中,方便直接使用pgsql相关命令,下面初始化数据库:

/monchickey/bin/initdb -D /monchickey/pgsql_data/
成功后显示为
在这里插入图片描述 /monchickey/pgsql/bin/pg_ctl -D /monchickey/pgsql_data/ -l logfile start 这里-l指定日志文件位置,这里直接输出在家目录下的logfile中,这个可以自己指定,这里-D指定数据目录,默认如果不加数据目录直接报错找不到,可以刚才说的环境变量配置文件中~/.bash_profile加入一行: export PGDATA=/monchickey/pgsql_data 然后source进去即可,这样pgsql会自动去找PGDATA环境变量值,找不到才会报错,也可以自己去pgsql_data目录去添加logfile文件

启动之后此时执行:ps -ef | grep postgres 就可以看到相关进程如下:

在这里插入图片描述

pgsql默认的端口号为5432,通过netstat命令或者lsof命令都可以看到监听情况:lsof -i:端口号 netstat lanp | grep 端口号
  如果远程访问就连接不上了,具体的配置文件是data目录下的postgresql.conf,可以通过修改这个配置文件来调整各个参数,比如:listen_addresses可以修改绑定的地址,
 默认是localhost,port可以修改监听的端口号,默认是5432,max_connections可以修改最大客户端连接数量,默认是100等等
 
 这里使用华为云,本地远程连接
我直接修改为 listen_addresses=’*'表示所有
在这里插入图片描述

修改pg_hba.conf

配置pg_hab.conf 
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust

修改后:
# "local" is for Unix domain socket connections only
 local   all             all                                     peer
# IPv4 local connections:
 host    all             all             127.0.0.1/32            trust
# # IPv6 local connections:
 host    all             all             ::1/128                 trust
# # Allow replication connections from localhost, by a user with the
# # replication privilege.
 local   replication     all                                     peer
 host    replication     all             ::1/128                 trust

修改参数说明参考:

https://blog.csdn.net/pg_hgdb/article/details/79755246

然后,需要在华为云服务器上,放开访问PostgreSQL的5432端口,否则会报请求超时
在这里插入图片描述
创建server
输入pg登录密码,pg
连接就ok了。
参考来源:https://www.cnblogs.com/baiyifengyun/p/14141792.html

停止postgresql的命令为: /monchickey/pgsql/bin/pg_ctl -D /monchickey/pgsql_data/ stop
  
3. 命令行界面简单操作

pgsql和mysql一样可以通过交互式提示符连接操作,连接方式如下:

./bin/psql -h 127.0.0.1 -d postgres -U postgres -p 5432
  其中-h参数指定服务器地址,默认为127.0.0.1,默认不指定即可,-d指定连接之后选中的数据库,默认也是postgres,-U指定用户,默认是当前用户,-p 指定端口号,默认是"5432",其它更多的参数选项可以执行: ./bin/psql --help 查看

登录进去默认界面如下所示:

在这里插入图片描述
pgsql 常用命令:
\\l 查看当前的数据库列表
\\c 数据库 切换当前数据库
\\d 表名; 查看表的详细信息
\\q 退出交互式界面
其余基本同mysql

以上是关于pgsql安装与基本配置以及本地远程访问华为云pg的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 允许远程访问设置方法

总结:PgSql备份pg_dump与还原pg_restore

如何配置PostgreSQL允许被远程访问

pgsql 允许任意 ip 访问

PostgreSQL 允许远程访问设置方法

PostgreSQL 允许远程访问设置方法