linux postgresql9.6安装
Linux版本:CentOS release 7PostgresSQL版本:postgresql-10.1PostgreSQL官网下载地址:https://www.postgresql.org/ftp/source/v9.6.2/我下载的是postgresql-9.6.2.tar.gz需要系统用户postgres正文安装路径为 /usr/local/pgsql/1、 解压...
- Linux版本:CentOS release 7
- PostgresSQL版本:postgresql-10.1
- PostgreSQL官网下载地址:https://www.postgresql.org/ftp/source/v9.6.2/
- 我下载的是postgresql-9.6.2.tar.gz
- 需要系统用户postgres
正文
安装路径为 /usr/local/pgsql/
1、 解压-将源文件解压到一个临时目录/usr/local/installPackage
gunzip postgresql-9.6.2.tar.gz
tar xf postgresql-9.6.2.tar
2、 依次执行命令
cd /usr/local/installPackage/postgresql-9.6.2
./configure --prefix=/usr/local/pgsql/ (指定安装目录)
make
make install
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
./configure是检查当前环境能否安装PG,以下是我遇到的报错和解决方案
报错1:configure: error: no acceptable C compiler found in $PATH:
解决:yum install gcc
报错2:configure: error: readline library not found
解决:yum install readline-devel
3、 启动或重启server
* 先确保是切换到了/pgsql/bin目录下,并且切换Linux用户postgres
cd /usr/local/pgsql/bin/
su – postgres
./pg_ctl start -D /usr/local/pgsql/data
重启server:
./pg_ctl restart -D /usr/local/pgsql/data
停止
./pg_ctl stop
4、 新建数据库和可以登录数据库的用户密码
* 确保是在/usr/local/pgsql/bin/目录下
创建数据库: ./createdb mydb
创建用户(如用户名为lin,密码为LinBug)有两种方式,
1) CREATE USER或CREATE ROLE:CREATE USER是CREATE ROLE的一个别名。 唯一的区别是CREATE USER命令 缺省是LOGIN, 而CREATE ROLE命令缺省是NOLOGIN。
先进入默认的postgres数据库: ./psql
然后执行:
CREATE USER lin WITH PASSWORD 'LinBug';
2) pg封装的命令方式:
./createuser -P lin
这会提示你输入新建用户的密码,重复输入密码后,创建成功
5、访问数据库
* 确保在/usr/local/pgsql/bin/目录下,
以默认用户名访问默认数据库(默认的用户名和数据库名都是postgres,不写-p就默认端口5432):
./psql -p 5432
./psql -p 5432 -h 127.0.0.1 -d postgres -U postgres
以名为lin的角色登录名为mydb的数据库:
./psql mydb -U lin
6、远程访问数据库设置
* 远程访问数据库的认证方式主要有很多方式,我只设置基于TCP/IP连接的trust认证方式
需设置两个配置文件,
1)修改配置文件postgresql.conf,
vim /usr/local/pgsql/data/postgresql.conf
修改监听地址:
#listen_addresses=’localhost’
#将上面这行改成如下
listen_addresses=’*’
2)修改配置文件/pgsql/data/pg_hba.conf:
vim /usr/local/pgsql/data/pg_hba.conf
添加一条IP授权记录(如192.168.2.23),可以对一个网段授权
# 这是在/pgsql/data/pg_hba.conf文件里加
# IPv4 myhost connections:
host all all 192.168.2.0/24 md5
当然,可以设置所有网段IP可以访问:
# 这是在/pgsql/data/pg_hba.conf文件里加
# IPv4 remote address connections:
host all all 0.0.0.0/0 md5
7、设置postgres用户的环境变量
进入postgres的主目录
#cd ~
编辑~/.bash_profile文件
#vi ~/.bash_profile
设置以下的环境变量
export PGHOME=/opt/pgsql-9.1.7
export PGDATA=~/data
保存,退出vi。执行以下命令,使环境变量生效
#source ~/.bash_profile
8、设置开机启动
在pg的安装目录下的contrib/start-scripts
的linux
文件,将它拷贝一份到/etc/init.d
目录下并重命名为postgresql
cp /usr/local/postgresql/postgresql-9.5.5/contrib/start-scripts/linux /etc/init.d/postgresql
修改脚本内容
# Installation prefix
prefix=/usr/local/pgsql
# Data directory
PGDATA="/usr/local/pgsql/data"
# Who to run the postmaster as, usually "postgres". (NOT "root")
PGUSER=postgres
# Where to keep a log file
PGLOG="$PGDATA/serverlog"
然后为所有用户添加改脚本的可执行权限:
chmod a+x /etc/init.d/postgresql
最后通过chkconfig命令将该脚本注册为开机启动即可:
chkconfig --add postgresql
以后就可以通过系统服务启动了
service postgresql start
9、常用命令
查询占用端口
netstat -a | grep PGSQL
修改用户密码
alter user postgres with password 'postgres';
密码postgres要用引号引起来
命令最后有分号
备份数据库
./pg_dump -p 5432 -U postgres -d postgres -F c -c -f /opt/xxx.backup
-F, --format=c|d|t|p output file format (custom, directory, tar,导出文件的格式 plain text (default))
恢复数据库
./pg_restore -p 5432 -h 127.0.0.1 -d postgres -U postgres < backup.backup
更多推荐
所有评论(0)