目录
Ubuntu安装postgresql并连接navicat,可能涉及到2种方式,一是没有服务器的情况下,使用虚拟机,二是直接用服务器,ip端口都是设置好的。本文主要是从初学者的角度,使用本地虚拟机的情况下完成本次任务,如果你是有服务器,请略过相关虚拟的步骤。
我本身电脑的问题,我是用的是virtualboxan安装的ubuntu系统,参考链接如下:
这里根据实际需求,有2中方式安装,一是可以直接连接网络,通过命令直接安装,二是提前下载好postgresql安装包,解压缩安装。
- sudo apt update && sudo apt upgrade -y
- sudo apt install postgresql postgresql-client postgis -y
(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 # 安装
以上安装完毕,postgresql相关操作没有问题,postgis的空间查询不能使用,需要调整数据库。
- sudo psql -u postgres
- # 以下3条是数据库命令
- CREATE DATABASE discern_db;
- CREATE EXTENSION postgis;
- SELECT PostGIS_version();
- \q
- # 重启数据库
- sudo service postgresql restart
数据库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
-
由于默认安装完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连接数据库需要接参数虚拟主机的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