ubuntu 下安装配置postgres sql 数据库

参考链接 :安装配置


1、安装postgreSQL

sudo apt-get update
sudo apt-get install postgresql-9.4

在Ubuntu下安装Postgresql后,会自动注册为服务,并随操作系统自动启动。
在Ubuntu下安装Postgresql后,会自动添加一个名为postgres的操作系统用户,密码是随机的。并且会自动生成一个名字为postgres的数据库,用户名也为postgres,没有密码

2、修改管理员密码

上面已经把数据库下载下来了 ,接下来我们 修改默认的postgres数据库用户的密码为123456

打开客户端工具(psql)

sudo -u postgres psql

其中,sudo -u postgres 是使用postgres 用户登录的意思
PostgreSQL数据默认会创建一个postgres的数据库用户作为数据库的管理员,密码是随机的

接下来 进入 到 下面

postgres=# ALTER USER postgres WITH PASSWORD '123456'; 

3、退出PostgreSQL psql客户端

postgres=# \q

  1. 配置 可以远程访问
sudo vim /etc/postgresql/9.5/main/postgresql.conf
1、在监听任何地址访问,修改连接权限
# listen_addresses = 'localhost' 改为 listen_addresses='*"
2.启用密码验证
#password_encryption = on 改为 password_encryption = on
-----------------------------------------------------------------------------------
sudo vim /etc/postgresql/9.5/main/pg_hba.conf
在文档末尾加上一下内容:
host all all 0.0.0.0 0.0.0.0 md5

5. 重启 服务即可

/etc/init.d/postgresql restart

6. 导出导入数据库及数据

使用psql命令方式导入 , 导出的文件格式为dump文件

-- 导入数据
psql -U 用户名 -h HOST 数据库名称 < 数据源文件

-- 导出整个数据库
pg_dump -c 数据库名称 -U 用户名 -h HOST > 自定义文件名
-- 导出单表数据
pg_dump -c 数据库名称 -t 表名 -U 用户名 -h HOST > 自定义文件名

注意 如果你只需要导入数据的话, 可以将导出的文件内的除copy 关键字以外都删除掉,重新导入此文件即可导入成功。
如:
详细COPY 指令 戳这里

COPY public.main_meetingsinfo4bo (id, meeting_id, meeting_name, meeting_type) FROM stdin;
26573   3617    拿敌稳培训订货会        分享会

例如:

# 导入
psql -U user -h ynt-test.com.cn ynq_hyc_v2 < 20210225_ynq.dump

1. 导数据或删除数据库时,客户端连接错误

错误内容:
HINT: In a moment you should be able to reconnect to the database and repeat your command. SSL SYSCALL error: EOF detected no connection to the server

断开连接到这个数据库上的所有链接,再删除数据库。怎么断开呢?在PostgreSQL 9.2 及以上版本,执行下面的语句:

-- 
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname='mydb' AND pid<>pg_backend_pid();

再删除

drop DATABASE mydb;

注意:导入和导出的时候,必须关闭所有客户端对目标数据库的连接。否则对出现导数据无法连接的错误。

2. 导数据 内存错误

博主使用的是aws rds PostgreSQL数据库
出现 PostgreSQL 上 设备上没有剩余空间或 DiskFull”错误

错误内容:
ERROR: could not extend file “base/327817/2674”: No space left on device
HINT: Check free disk space

分析原因如下:

  • 数据库日志文件的大小
  • 临时文件的存在
  • 事务日志磁盘使用率不断增加
  • 跨区域读取副本
  • 膨胀或不当清除死行
  • 存在孤立文件

aws官方解答

3. 总结

pgsql 可以用这种方式,可以查阅一下其他数据库(sql server, mysql)是否有这些功能,批量导出导入数据库数据及架构

4. 理解数据库的Schema模式

详解: 戳这里

5. 清除连接数

-- 查看当前pgsql 设置最大连接数
show max_connections;
-- 查看当前 pgsql 连接数及详情
select * from pg_stat_activity where usename='haoyacong'
-- 清除 连接
SELECT pg_terminate_backend(30771) FROM pg_stat_activity;
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值