参考链接 :安装配置
文章目录
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
- 配置 可以远程访问
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
分析原因如下:
- 数据库日志文件的大小
- 临时文件的存在
- 事务日志磁盘使用率不断增加
- 跨区域读取副本
- 膨胀或不当清除死行
- 存在孤立文件
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;