目录
Ubuntu安装postgresql并连接navicat,可能涉及到2种方式,一是没有服务器的情况下,使用虚拟机,二是直接用服务器,ip端口都是设置好的。本文主要是从初学者的角度,使用本地虚拟机的情况下完成本次任务,如果你是有服务器,请略过相关虚拟的步骤。
一、安装linux系统
我本身电脑的问题,我是用的是virtualboxan安装的ubuntu系统,参考链接如下:
二、安装postgresql数据库
这里根据实际需求,有2中方式安装,一是可以直接连接网络,通过命令直接安装,二是提前下载好postgresql安装包,解压缩安装。
1. 通过命令行安装
sudo apt update && sudo apt upgrade -y
sudo apt install postgresql postgresql-client postgis -y
2. 通过安装包安装
(1)下载安装包
下载连接:https://www.postgresql.org/ftp/source/v12.0/postgresql-12.0.tar.gz
(2)复制到数据库所载虚拟机
tar -xzvf postgresql-12.0.tar.gz #解压
./configure --prefix=/home/postgres/progres #安装前的环境检查
make && make install # 安装
3. postgresql命令
以上安装完毕,postgresql相关操作没有问题,postgis的空间查询不能使用,需要调整数据库。
sudo psql -u postgres
# 以下3条是数据库命令
CREATE DATABASE discern_db;
CREATE EXTENSION postgis;
SELECT PostGIS_version();
\q
# 重启数据库
sudo service postgresql restart
4. 修改账户
数据库postgresql数据库安装完毕后,这里有2个账户需要记住,一个是数据库安装时生成的linux系统账户,一个属数据库安装生成的数据库管理账户。
postgresql默认创建的用户为postgres用户,需要修改密码。
# linux系统的postgres用户修改密码
sudo cat /etc/passwd #查看linux所有用户,用户中包含postgres
sudo passwd -d postgres # 删除旧密码,默认密码为空
sudo -u postgres passwd # 设置新密码,passwd替换成自己的密码
# postgresql数据库postgres用户修改密码
sudo psql -u postgres
ALTER USER postgres WITH PASSWORD 'postgres'; # '' 引号中的为新密码
\q
5. 修改配置
由于默认安装完postgresql只允许本机访问,如果需要其他方式使用(后端连接、navicat)需要修改配置文件postgresql.conf和pg_hba.conf。
文件位置一般为/etc/postgresql/12/main/postgresql.conf和/etc/postgresql/12/main/pg_hba.conf。
5.1 修改postgresql.conf文件
cd /etc/postgresql/12/main
ll
sudo vim postgresql.conf
# 以下需要使用linux的vim编辑文件,修改的为至为以下2行
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
#port = 5432 # (change requires restart)
# 有注释的把注释的*号先去掉,进行如下修改:
listen_addresses = '*' # 监听地址
port = 5432 # 监听端口
5.1 修改pg_hba.conf文件
sudo vim pg_hba.conf
# 找到如下位置目录,原有行下面增加一行:
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# 如下这行是增加的
host all all 0.0.0.0/0 trust
# 重启数据库
sudo service postgresql restart
# 如果重启不能执行,用如下命令
sudo /etc/init.d/postgresql start # 开启
sudo /etc/init.d/postgresql stop # 关闭
sudo /etc/init.d/postgresql restart # 重启
三、Navicat链接数据库
navicat连接数据库需要接参数虚拟主机的ip、对外开放的端口、初始数据库、数据库用户名及密码。目前已知的信息为端口为5432,初始数据库postgres,用户名为postgres,密码为123456,还需要知道虚拟主机的ip。
# 上边步骤已经安装了net-tools,此时可以通过命令获取ip
ifconfig -a # 方式一
ip addr # 方式二
# 查看的网关
route -n
# 查看DNS
nsloopup hcos
# 开放指定端口
sudo apt-get update
sudo apt-get install iptables
sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
sudo apt-get install iptables-persistent
保存命令
sudo netfilter-persistent save
sudo netfilter-persistent reload