ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

linux下安装postgresql-10 全网最详细的步骤安装

2020-06-25 13:41:38  阅读:511  来源: 互联网

标签:opt 10 postgresql postgres pgsql pg bin 安装 localhost


1、下载安装包
下载地址
在这里插入图片描述
2、上传安装包到服务器上
在这里插入图片描述
3、解压安装包

tar -xvzf postgresql-10.1-1-linux-x64-binaries.tar.gz

在这里插入图片描述
解压出来之后目录为pgsql
4、移动解压文件到指定目录
在这里插入图片描述
在opt目录下创建一个pgsql的文件夹,将刚才解压的文件复制到这个目录下
在这里插入图片描述
现在pgsql的安装目录就是/opt/pgsql/pgsql
5、创建pgsql用户并设置密码

[root@localhost pgsql]# useradd postgres
[root@localhost pgsql]# passwd postgres

密码暂定123456
在这里插入图片描述
注意:这里设置密码是linux用户postgres的登录密码,不是pgsql服务器的密码。
6、创建数据目录

[root@localhost opt]# mkdir pgsql_data

在这里插入图片描述
8、然后切换到postgres用户来操作数据库,pgsql数据库就以postgres为默认用户。

[root@localhost opt]# su - postgres

9、配置环境变量,将pgsql的bin目录加至环境变量中,方便直接使用pgsql相关命令。

[postgres@localhost ~]$ vim /etc/profile

然后数据 i 进入编辑模式,在文件的最后一行加入pgsql的bin的目录

export PGDATA=/opt/pgsql/pgsql/bin

在这里插入图片描述
然后Esc,退出编辑模式

:wq     # 保存并退出

如果出现下面的情况,说明当前用户没有权限,需要切换成root用户,然后再重新操作一遍即可。
在这里插入图片描述
然后刷新文件

source /etc/profile

在这里插入图片描述
10、初始化数据库
先切换成postgres用户
在这里插入图片描述
我现在已经进入到了/opt/pgsql/pgsql 的目录下了
在这里插入图片描述
然后执行初始化数据库的命令

[postgres@localhost pgsql]$ bin/initdb -D /opt/pgsql_data/

在这里插入图片描述
等待执行完毕,没什么问题就初始化成功了,会出现以上的提示,最后会出现这个命令,就是让你用这个命令就可以启动数据库了,下一步做启动的具体说明。
bin/pg_ctl -D /opt/pgsql_data/ -l logfile start

这里-l指定日志文件位置,这里直接输出当前目录下的logfile中,这个可以自己指定,这里-D指定数据目录,默认如果不加数据目录直接报错找不到,可以在环境变量配置文件中加入一行: export PGDATA=/opt/pgsql_data 然后source刷新即可,这样pgsql会自动去找PGDATA环境变量值,找不到才会报错。
11、启动数据库

bin/pg_ctl -D /opt/pgsql_data/ -l logfile start

启动的时候如果报下面这个错误,说明权限不够,
在这里插入图片描述
执行这个命令进行赋权,注意要在root的用户下操作。

[root@localhost opt]# chmod -R 777 pgsql

在这里插入图片描述
然后再次执行启动的命令,ok,数据库启动成功。
在这里插入图片描述
执行查看进程的命令查看

[postgres@localhost pgsql]$ ps -ef | grep postgres

就可以看到相关进程如下:
在这里插入图片描述
pgsql默认的端口号为5432,通过netstat命令或者lsof命令都可以看到监听情况:

[postgres@localhost pgsql]$ lsof -i:5432

[postgres@localhost pgsql]$ netstat -an | grep 5432

在这里插入图片描述
现在可以看到pgsql默认监听的是localhost或127.0.0.1,目前只能本机访问,如果远程访问就连接不上了,具体的配置文件是data目录下的postgresql.conf,可以通过修改这个配置文件来调整各个参数,比如:listen_addresses可以修改绑定的地址,默认是localhost,port可以修改监听的端口号,默认是5432,max_connections可以修改最大客户端连接数量,默认是100等等。

停止postgresql的命令为:

/opt/pgsql/pgsql/bin/pg_ctl -D /opt/pgsql_data/ stop 

12、配置远程连接的操作
使用命令

find / -name postgresql.conf

找到 postgresql.conf
在这里插入图片描述
在这里插入图片描述

[postgres@localhost pgsql_data]$ vim postgresql.conf 

然后再数据命令

/listen_addresses

查找listen_addresses所在位置
在这里插入图片描述
修改参数:
在这里插入图片描述
修改pg_hba.conf文件的内容:

[postgres@localhost pgsql_data]$ vim pg_hba.conf 

可访问的用户ip段
在文件末尾加入:

host  all  all  0.0.0.0/0  md5

在这里插入图片描述
然后再重新启动数据库使之生效即可。
在这里插入图片描述
停止postgresql的命令为:

/opt/pgsql/pgsql/bin/pg_ctl -D /opt/pgsql_data/ stop 

启动postgresql的命令为:

/opt/pgsql/pgsql/bin/pg_ctl -D /opt/pgsql_data/ -l logfile start

查看进程

ps -ef | grep postgres

将端口添加到防火墙

firewall-cmd --permanent --add-port=5432/tcp

重启防火墙

systemctl restart firewalld

13、命令行界面简单操作
pgsql和mysql一样可以通过交互式提示符连接操作,连接方式如下:

/opt/pgsql/pgsql/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 查看
登录进去默认界面如下所示:
在这里插入图片描述
命令提示符前面的就是当前的数据库,使用 \l 查看当前的数据库列表
在这里插入图片描述
默认postgres,template0和1这3个库是不允许操作的,创建新的数据库执行:

CREATE DATABASE test WITH OWNER=postgres ENCODING='UTF-8'; 

这样就创建好了数据库test,然后可以执行命令:

\c test 

切换当前数据库为test,然后执行

\d 

可以查看当前数据库下的所有表:
在这里插入图片描述
创建一个简单的数据表可以执行下面的命令:
在这里插入图片描述
创建表之后可以使用

\d student;

查看表的详细信息,如下:
在这里插入图片描述
现在可以插入一条测试数据:
INSERT INTO student (id, name, number) VALUES (1, ‘张三’, ‘1023’);

然后可以查询这条数据:
SELECT * FROM student WHERE id=1;
在这里插入图片描述
最后可以执行

\q 

退出交互式界面
在这里插入图片描述
14、如果远程连接报错:
FATAL: password authentication failed for user “连接用户名”
解决方法
1、编辑pg_hba.conf,将md5认证修改成trust认证,编辑后退出保存
进入pgsql_data目录,然后编辑pg_hba.conf文件
2、执行pg_ctl reload加载生效,要进入bin目录下,再执行重新加载的命令
在这里插入图片描述
3、psql连接,用alter role修改密码
在这里插入图片描述
4、退出psql
5、编辑pg_hba.conf,将turst认证修改成md5认证,编辑后退出保存
6、执行pg_ctl reload加载生效

以上就是安装的详细步骤,以及我安装中出现的问题和解决的方案,希望能够帮助你们。

标签:opt,10,postgresql,postgres,pgsql,pg,bin,安装,localhost
来源: https://blog.csdn.net/baidu_22576911/article/details/106922640

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有