文章目录
- 0 前言
- 安装postgresql
- 安装psycopg2
- 一些符合课程习惯的配置
- 使用
- 新建与加载数据库
- sql
- python + sql
- 测试
- 一些报错与之前使用postgres无用的记录
- # could not change directory to "/home/ubuntu": Permission denied
- 也可以进入到postgres这个用户的命令行
- 和python的交互
- 基本设置
- Python代码执行并运行
- 测试
- 给postgres 权限?
- 查报错,看看为啥
0 前言
postgresql的安装方式有很多种。
- 从源代码安装。这是3311推荐的安装做法,可以很方便地设置文件安装位置。Prac Exercise 02 PostgreSQL: a client-server RDBMS。但是这种做法更麻烦,使用的是集群的操作。
- 使用包管理器安装。本文是使用apt安装
安装postgresql
安装psycopg2
一些符合课程习惯的配置
- 默认的postgresql的用户名字叫
postgres
,这个用户权限有限,经常报错。一定要首先利用createuser 去创建一个新用户,用户名子和你自己的Linux系统用户名一致,并且给予超级权限,我的叫ubuntu。 - 此时,可以直接在ubuntu命令行界面下,使用各种psql的命令了。
可以使用
sudo -u ubuntu psql操作数据库了。 我在zsh里设置了alias,alias mysql=“sudo -u ubuntu psql”
使用
通过3311的考前模拟题来练习一下做题的各个过程。
整体这部分,只要使用老师的步骤,都没问题。
关键真的是,需要创建一个和系统用户同名的数据库用户。
新建与加载数据库
sql
应用与测试
python + sql
测试
一些报错与之前使用postgres无用的记录
# could not change directory to “/home/ubuntu”: Permission denied
会报错,但不影响。
在腾讯云的正常ubuntu界面下:
可以通过加载sql,以及在交互式命令行写sql的方式使用起来。
也可以进入到postgres这个用户的命令行
和python的交互
基本设置
一开始会提示:psql: error: FATAL: Peer authentication failed for user “postgres”
权限不够:
修改这个文件里的权限,把peer改成了trust,trust > peer > md5, trust最松
sudo vim /etc/postgresql/12/main/pg_hba.conf
如果还不行,看看这两个链接:可以不用密码登录
https://gabrielinnocentrockerfeller.medium.com/how-to-fix-fatal-password-authentication-failed-for-user-postgres-in-ubuntu-20-4-f7c6d2856fc9
https://stackoverflow.com/questions/21483540/postgres-password-authentication-issue
Python代码执行并运行
测试
测试的时候,如何能够自由创建文件,并且进行文件的比对。
sudo -u postgres 'sh' 'check' 'q1'