ubuntu 下安装配置postgres sql 数据库

参考链接 :安装配置

文章目录

  • 1、安装postgreSQL
  • 2、修改管理员密码
  • 3、退出PostgreSQL psql客户端
  • 5. 重启 服务即可
  • 6. 导出导入数据库及数据
    • 1. 导数据或删除数据库时,客户端连接错误
    • 2. 导数据 内存错误
  • 3. 总结
  • 4. 理解数据库的Schema模式
  • 5. 清除连接数


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;

你可能感兴趣的:(数据库,c#)