使用的Ubuntu版本:18.04
安装postgresql
$ sudo apt-get install postgresql
如果失败可以更新一下包
sudo apt-get update
安装成功后,可以查看psql的版本
psql --version
如果安装成功则输出
psql (PostgreSQL) 9.5.25
可以看出,这里的PostgreSQL版本为9.5
安装成功后,postgresql会自动创建:一个数据库用户
postgres(默认无密码)、一个数据> 库postgres、一个Linux用户postgres
修改一下Linux用户postgres的密码
sudo passwd postgres
切换到Linux用户postgres
su postgres
进入数据库命令行
psql
执行成功则输出
psql (9.5.25)
Type "help" for help.
postgres=#
Postgresql的服务默认是开启的,如果没有,可以使用以下命令:
sudo /etc/init.d/postgresql start # 开启服务
sudo /etc/init.d/postgresql stop # 关闭服务
sudo /etc/init.d/postgresql restart # 重启服务
查看Postgresql的数据库目录(数据存储在哪)
在psql的命令行下,执行SHOW data_directory;
postgres=# SHOW data_directory;
data_directory
------------------------------
/var/lib/postgresql/9.5/main
(1 row)
/var/lib/postgresql/9.5/main就是数据库目录
编辑该文件
sudo vi /etc/postgresql/9.5/main/postgresql.conf
/etc/postgresql/9.5/main/postgresql.conf
其中9.5是PostgreSQL的版本,要根据本地的版本而定
找到*#listen_addresses = 'localhost'*,修改为
listen_addresses = '*'
如果要允许 IPv4 和 IPv6 连接,请将 ‘localhost’ 替换为 ‘::’
listen_addresses = '::'
创建一个数据库目录(你需要的位置)
mkdir 目录名
例如我创建的是
mkdir /home/test/pg_db
关闭Postgresql服务
sudo service postgresql stop
复制数据(从默认数据库目录复制到你指定的数据库目录)
sudo cp -rf postgresql的默认数据库目录 你指定的数据库目录
我执行的是
sudo cp -rf /var/lib/postgresql/9.5/main /home/test/pg_db
权限设置
sudo chown -R postgres:postgres 你指定的数据库目录
sudo chmod 700 你指定的数据库目录
我执行的是
sudo chown -R postgres:postgres /home/test/pg_db
sudo chmod 700 /home/test/pg_db
修改postgresql的data_directory (配置文件中指定的数据库目录)
sudo vi /etc/postgresql/9.5/main/postgresql.conf
将data_directory = '/var/lib/postgresql/9.5/main' # use data in another directory修改为:
data_directory = '你指定的数据库目录'
我执行的是
data_directory = '/home/test/pg_db'
启动Postgresql服务
sudo service postgresql start