数据库安装PostgreSQL+postgis(数据库安装出现防火墙警告)
第一章 数据库安装PostgreSQL+postgis
一、PostgreSQL(postgres用户启动)
一.1解压(root用户)
mkdir /usr/local/pgsql
cd /usr/local/pgsql
ll
chmod -R 777 /usr/local/pgsql
# 将postgresql-12.5.tar.gz压缩包将放入/usr/local/pgsql/目录进行解压
cd /usr/local/pgsql
ll
chmod -R 777 /usr/local/pgsql
tar -zxvf /usr/local/pgsql/postgresql-12.5.tar.gz
# 对解压后的文件夹重命名为 postgresqlaz
mv /usr/local/pgsql/postgresql-12.5 /usr/local/pgsql/postgresqlaz
chmod -R 777 /usr/local/pgsql
一.2安装(root用户)
cd /usr/local/pgsql/postgresqlaz
ll
./configure
卡顿一会(2分钟),如下图所示
卡顿完成,继续安装
make
make install
一.3创建postgres用户(root用户)
adduser postgres
在root用户下执行设置密码(不要设置特殊符号比如@、#)
passwd postgres
sudo visudo
# 在 visudo 编辑器中,在最后添加以下行:
postgres ALL=(ALL) NOPASSWD: ALL
一.4创建数据文件、日志目录(root用户)
mkdir /usr/local/pgsql/data
mkdir /usr/local/pgsql/logs
mkdir /usr/local/pgsql/logs/pg_log
# 授权(用户和组)
chown postgres:postgres /usr/local/pgsql/data
chown postgres:postgres /usr/local/pgsql/logs
chown postgres:postgres /usr/local/pgsql/logs/pg_log
chmod -R 777 /usr/local/pgsql
一.5root用户切换至postgres用户初始化/启动数据库
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 &
一.6查看进程(postgres用户)
ss -nltp | grep 5432
ss -nltp | grep postgres
一.7重启数据库(postgres用户)
/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data
ss -nltp | grep postgres
/usr/local/pgsql/bin/pg_ctl restart -D /usr/local/pgsql/data
ss -nltp | grep postgres
一.8修改配置文件postgresql.conf
find /usr/local/pgsql -name "postgresql.conf"
# 拷贝到本机修改完,再贴回去/usr/local/pgsql/data/postgresql.conf
一.9修改配置文件pg_hba.conf
find /usr/local/pgsql -name "pg_hba.conf"
# 拷贝到本机修改完,再贴回去/usr/local/pgsql/data/pg_hba.conf
一.10环境变量设置
echo 'export PATH=$PATH:/usr/local/pgsql/bin' | sudo tee -a /etc/profile
# 使其生效
source /etc/profile
sudochmod -R 777 /usr/local/pgsql
一.11设置密码/usr/local/pgsql/bin/psql -U postgres
ALTER USER postgres WITH PASSWORD '设置的密码';
\q
一.12重启数据库(postgres用户)
ss -nltp | grep 5432
/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data
sudo chmod 0700 /usr/local/pgsql/data
sudo chown -R postgres:postgres /usr/local/pgsql/data
sudochmod -R 777 /usr/local/pgsql
sudo -u postgres /usr/local/pgsql/bin/pg_ctl restart -D /usr/local/pgsql/data
ss -nltp | grep 5432
二、postgis
二.1安装geos
su - root
mkdir /usr/local/geos
cd /usr/local/geos
#将geos-3.8.0.tar.bz2压缩包将放入 /usr/local/geos/目录
tar jxf /usr/local/geos/geos-3.8.0.tar.bz2
mv geos-3.8.0 geosaz
cd geosaz
./configure --prefix=/usr/local/geos
make
耐心等待,直至出现下述内容。
make install
二.2安装proj
find / -name "*pkgconfig*"
echo 'export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:$PKG_CONFIG_PATH' >> ~/.bashrc
source ~/.bashrc
mkdir /usr/local/proj4
cd /usr/local/proj4
#将proj-6.2.0.tar.gz压缩包将放入 /usr/local/proj4/目录
tar zxvf /usr/local/proj4/proj-6.2.0.tar.gz
mv proj-6.2.0 projaz
cd /usr/local/proj4/projaz
./configure --prefix=/usr/local/proj4
make
耐心等待一会
make install
二.3安装gdal
mkdir /usr/local/gdal
cd /usr/local/gdal
#将gdal-3.0.2.tar.gz压缩包将放入/usr/local/gdal/目录
tar zxvf /usr/local/gdal/gdal-3.0.2.tar.gz
mv gdal-3.0.2 gdalaz
cd gdalaz
./configure --prefix=/usr/local/gdal --with-proj=/usr/local/proj4/
半个小时
make
make install
二.4环境变量设置
source ~/.bash_profile
cat ~/.bash_profile
二.5验证有无安装成功(环境变量有无设置成功)
geos-config --version
proj --version
gdalinfo --version
二.6配置postgis
二.6.1解压
mkdir /usr/local/postgis
cd /usr/local/postgis
#将postgis-3.0.0.tar.gz压缩包将放入/usr/local/postgis/目录
tar zxvf postgis-3.0.0.tar.gz
mv postgis-3.0.0 post
二.6.2授权
cd /usr/local/postgis/post
ll
sudo chmod -R 755 /usr/local/postgis
sudo chown -R postgres:postgres /usr/local/postgis/post
二.6.3安装
需要json-c-devel (find / -name "*json-c.pc*")
rpm -q json-c json-c-devel
PKG_CONFIG_PATH="/usr/lib64/pkgconfig:/usr/local/pgsql/lib/pkgconfig:/usr/local/proj4/lib/pkgconfig:/usr/local/gdal/lib/pkgconfig" \
./configure \
--with-pgconfig=/usr/local/pgsql/bin/pg_config \
--with-geosconfig=/usr/local/geos/bin/geos-config \
--with-projdir=/usr/local/proj4 \
--with-gdalconfig=/usr/local/gdal/bin/gdal-config \
--without-raster
make
make install
二.6.4修改配置文件ld.so.conf
vi /etc/ld.so.conf
# 添加
/usr/local/proj4/lib/pkgconfig
/usr/local/pgsql/lib
/usr/local/geos/lib/
/usr/local/proj4/lib/
# 使修改生效
ldconfig
二.6.5添加postgis引擎扩展
/usr/local/pgsql/bin/psql -U postgres -c "CREATE EXTENSION postgis;"
/usr/local/pgsql/bin/psql -U postgres -c "SELECT PostGIS_full_version();"
至此,postgresql与postgis已安装完成,可使用工具进行连接使用。
三、PostgreSQL(访问控制)
三.1查看配置文件postgresql.conf和pg_hba.conf
# 修改监听地址(允许所有 IP)
sudo vi /usr/local/pgsql/data/postgresql.conf
# 修改以下行:
listen_addresses = '*' # 或指定 IP,如 '192.168.5.142'
port = 5432
# 修改客户端认证规则
sudo vi /usr/local/pgsql/data/pg_hba.conf
# 最后添加一行:
host all all 0.0.0.0/0 md5
# 重启服务
su - postgres
sudo -u postgres /usr/local/pgsql/bin/pg_ctl restart -D /usr/local/pgsql/data
/usr/local/pgsql/bin/pg_ctl status -D /usr/local/pgsql/data
三.2本地连接测试(在服务器端执行)
sudo -u postgres /usr/local/pgsql/bin/psql -d postgres
三.3远程连接测试(在客户端)
/usr/local/pgsql/bin/psql -h 192.168.5.142 -p 5432 -U postgres -d postgres
三.4开放5432 端口(CentOS/Kylin)
sudo systemctl start firewalld
sudo firewall-cmd --add-port=5432/tcp --permanent
sudo firewall-cmd --reload
sudo systemctl disable firewalld
# 验证端口可达性(在客户端执行)
telnet 192.168.5.142 5432