PostgreSQL安装详细步骤(linux)
原文地址:https://www.cnblogs.com/qiyebao/p/4562557.html 1. 检查PostgreSQL 是否已经安装 Linux-软件包管理-rpm命令管理-查询rpm -qa | grep postgres 检查PostgreSQL 是否已经安装 若已经安装,则使用rpm -e 命令卸载。 rpm -e postgresql94-contrib-9.4.4-1PGDG.rhel6.x86_64 postgresql94-server-9.4.4-1PGDG.rhel6.x86_64 卸载
rpm -e postgresql94-libs-9.4.4-1PGDG.rhel6.x86_64 postgresql94-9.4.4-1PGDG.rhel6.x86_64 卸载
可以使用rpm -qa | grep postgres再次查看是否还有Postgres安装文件,没有卸载完成。 2.使用yum库设置安装postgresql94版本,最好先创建用户组和用户: (1)新增postgres用户组: groupadd postgres (2)新增postgres用户并且设置这个用户属于上面创建的postgres用户组: useradd -g postgres postgres (3)修改postgres用户密码:passwdpostgres(这里设置密码为postgres) passwd postgres --修改postgres用户密码 yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm 使用yum库 3.安装postgresql94 yumsearchpostgresql//也可以先找一下,server版会有多个,决定选择装哪个 注意:如果出现错误,首先停止服务查看服务名称chkconfig --list找到postgresql的服务名,注意服务名可能会带有版本号,service 服务名 stop,然后使用rpm -e卸载命令,然后在执行上面的安装就可以了 安装成功 可以使用rpm -qal|grep postgres这个命令查看安装文件的位置,注意默认的postgresql配置文件的位置和名称(带有版本号) 查看/etc/rc.d/init.d/postgresql-9.4文件中的PGDATA信息,并显示行号。 cat /etc/rc.d/init.d/postgresql-9.4 | grep -n PGDATA -n显示行号
上图说明默认数据库文件的安装位置是在:/var/lib/pgsql/9.4/data,如果需要改变数据库文件的存放位置可以修改这里,下面会介绍如何修改默认数据库文件的存放位置。先看看这个目录里面有没有数据库的文件: ls -la /var/lib/pgsql/9.4/data 查看这个目录里面的内容 上图说明postgresql安装完成之后,默认数据库文件存放所使用的目录是空的。 下面的内容比较重要,介绍postgresql数据库如何安装: 一、如何更改默认数据库安装位置,安装postgresql数据库: Linux添加/删除用户和用户组 1、删除postgres用户和他的文件信息(如果之前安装过) userdel -r postgres 2、删除postgres用户组(如果之前安装过) groupdel postgres
passwd postgres --修改postgres用户密码 创建数据库文件存放的目录:/mnt/pgsql/data mkdir -p /mnt/pgsql/data 递归方式创建pgsql/data目录 默认刚建立的目录/mnt/pgsql和/mnt/pgsql/data的所有者和所有组都是root,需要修改为postgres用户和用户组。 chown -R postgres:postgres /mnt/pgsql ll /mnt chown -R postgres:postgres /mnt/pgsql/data ll /mnt/pgsql 查看是否已经更改为postgres用户和用户组了。 接下来就是要修改默认数据库文件存放路径了: 修改postgresql数据库的配置文件(/etc/rc.d/init.d/postgresql-9.4)中的PGDATA和PGLOG改成我们自己创建的目录:/mnt/pgsql: PGDATA=/mnt/pgsql/data PGLOG=/mnt/pgsql/pgstartup.log 保存之后,继续查询initdb文件的存放位置: find / -name initdb 查找initdb 的安装位置
指定数据库存放位置和编码方式,初始化数据库: /usr/pgsql-9.4/bin/initdb -E UNICODE -D /mnt/pgsql/data
注意:出现上面的错误说明Postgresql不能以root身份初始化,要以postgres用户的身份运行,所以上面要创建linux用户postgres和组postgres。 切换postgres用户执行初始化数据库操作 su - postgres 切换用户 编辑postgresql.conf文件,修改数据库默认接收的监听地址与端口参数: cat postgresql.conf | grep -n listen_addresses 查找listen_addresses在postgresql.conf文件中的位置并显示行号 查询listen_addresses的值: 修改前listen_addresses的值: 去掉59行的注释,将listen_addresses='localhost' 改成 listen_addresses='*',下图是修改后listen_addresses的值:
接下来继续修改pg_hba.conf文件,告诉数据库服务器它将允许什么样的客户端连接到自己: vi pg_hba.conf --修改postgresql服务连接文件 修改前的源文件: 在86行下面增加一行,表示允许任何一个客户端使用正确的用户名和密码访问自己: host all all 0.0.0.0/0 trust # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust或peer # IPv4 local connections: host all all 127.0.0.1/32 trust host all all 0 password # IPv6 local connections: host all all ::1/128 password # Allow replication connections from localhost,by a user with the # replication privilege. #local replication postgres peer #host replication postgres 32 ident #host replication postgres ::128 ident 备注:设置trust,本地可以使用psql -U postgres直接登录服务器;设置peer,本地可以使用psql -h 127.0.0.1 -d postgres -U postgres直接登录服务器; exit --返回root用户
chkconfig --list 查看所有服务并找到postgre的服务名称 默认postgresql-9.4不是自启动的,我们需要设置postgresql-9.4服务为自启动服务: chkconfig postgresql-9.4 on 设置服务自启动
service postgresql-9.4 status 查看服务状态 service postgresql-9.4 start 启动postgresql-9.4服务 有三种方式可以查看postgresql运行是否运行 ps -ef | grep postgres 查postgres的进程信息
netstat -tpnl | grep 5432 查postgres的端口号5432是否已经打开
开始连接postgresql数据库: psql -U postgres 连接pgsql server
看到上图表示连接数据库成功了。 修改配置文件 select pg_reload_conf();
show data_directory; 为数据库默认的登陆名postgres(等同于SQLServer里面的sa)设置登陆数据库的密码: ALTER USER postgres WITH PASSWORD '1234'; 添加密码 select * from pg_shadow; 设置防火墙 iptables -I INPUT -p tcp --dport 22 -j ACCEPT iptables -I INPUT -p tcp --dport 5432 -j ACCEPT service iptables save service iptables restart 二、采用默认的方式安装postgresql数据库文件: 直接执行下面的命令,都不需要创建linux用户: 9.4 initdb
如果启动过程中报错了,例如:Data directory is not empty![失败],估计是卸载出了问题,删除/var/lib/pgsql目录下面所有文件,使用rpm -e 命令卸载重新安装. cd /var/lib/pgsql/data cd /var/lib/pgsql cd /var/lib rm -rf /var/lib/pgsql ll /var/lib
rpm -e postgresql94-contrib-9.4.3-1PGDG.rhel6.x86_64 postgresql94-server-3-1PGDG.rhel6.x86_64 postgresql94-3-1PGDG.rhel6.x86_64 postgresql94-libs-3-1PGDG.rhel6.x86_64 卸载 yum -y install postgresql94-server postgresql94-contrib 安装 设置开机启动postgresql 9.4 on
查看postgresql运行是否运行 ps -ef | grep postgres 查postgres的进程信息 netstat -tpnl |grep 5432 查postgres的端口号5432是否已经打开 用postgres用户登录,并改密码 su postgres 切换用户
如果出现下面的错误,需要重新运行postgresql的服务,若想psql能直接登陆,再重启一下DB,socket文件会随着服务器的启动而生成。
ps -ef | grep postgre 查postgre进程
kill -9 31308 service postgresql-9.4 status service postgresql-9.4 stop service postgresql-9.4 start 切换用户 psql -U postgres 连接pgsql server from pg_shadow;
q 退出 如果出现下面这个错误 需要继续创建文件 touch /home/postgres/.psql_history 创建这个文件 chmod -R g+w /home/postgres 提升postgres这个目录的权限
chmod a+w /home/postgres/.psql_history 提升.psql_history这个文件的权限
修改/var/lib/pgsql/9.4/data/postgresql.conf(这个文件是默认的安装位置) vi /9.4/data/postgresql.conf 修改postgresql的配置文件
去掉59行的注释,将listen_addresses='localhost' 改成 listen_addresses='*' 修改/var/lib/pgsql/9.4/data/pg_hba.conf(这个文件是默认的安装位置) vi /var/lib/pgsql/9.4/data/pg_hba.conf 修改postgresql服务连接文件 第80行:peer改称md5,本地就可以连接自己了。 在82行下面增加一行 192.168.6.0/24 md5 允许192.168.0.0网段连接
host all all 0.0.0.0/0 md5 允许所有IP连接 关闭防火墙 service iptables stop 重启postgresql的服务 9.4 restart
三、使用客户端工具就可以连接成功了! Navicat for PostgreSQL (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |