Linux 安装 PostgreSQL 教程

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加载生效

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

转载自:
https://msd.misuland.com/pd/4425384081022255354

上一篇:postgresql 锁 理解


下一篇:postgresql整机迁移后主从恢复