2020-12-24 ubuntu postgresql安装配置、pgadmin4 docker安装使用、生成odoo默认配置文件

进行了为期4天的odoo基础培训,odoo的开发流程得到了进一步梳理,odoo开发的技术并不难,难的是将技术应用于业务,其中包括odoo财务、库存管理等已有核心模块的熟悉和调用开发,具体业务的分析设计,以及ERP实施中最难的与人打交道。ERP行业距离技术较远,距离人更近。
在跟老师紧密相处的这几天里,主要收益是改变了我对技术男的认知,老师不仅对技术细节有精湛的落地程度,还有包容的人格和丰富的阅历。课程之外以心换心,老师还传授了他在ERP实施经历中的很多经验,相识恨晚,再见有期,江湖一别各珍重,来日方长盼君安。
我会利用后面的时间梳理这段培训的思路,撰写odoo基础开发的系列文章。今天先写一个偏离主题的配置细节。
odoo使用的是postgresql,最新版的postgresql需要用pgadmin4才能正常访问。pgadmin4进行了彻底的改版,是完全基于python开发的BS架构的数据库管理GUI。pgadmin3之前的版本通过apt安装,pgadmin4则是通过python的pip安装,安装过程需要对python运行环境添加很多依赖包,因此一般需要在单独建立的虚拟环境中安装。比这个方案更便捷的方式则是docker部署。这篇文章就来梳理postgresql安装配置的细节和docker部署pgadmin4的方法。

1. postgresql安装和配置

1.1 postgresql安装

ubuntu上可以方便地使用apt安装postgresql,在安装数据库的同时,可以一并安装扩展模块。postgresql的一大优点是支持模块扩展,扩展的模块安装在/usr/share/postgresql/版本号/contrib目录下,默认只安装了一个基于SELinux的增强的访问控制模块。这些模块往往是处于试验阶段的功能,所以并没有包含在postgresql主程序中,用户可以有选择性地加载。

sudo apt update
sudo apt install postgresql postgresql-contrib

安装完成后postgresql服务将会自动启动。其默认管理员用户是postgres,可使用psql工具连接数据库,并且打印它的版本来验证安装:

sudo -u postgres psql -c "SELECT version();"

1.2 配置可远程访问

默认情况下,PostgreSQL服务器仅监听本地网络接口localhost,配置可远程访问有三个步骤,一是打开IP监听端口,二是配置认证方式,三是设置postgres用户密码。
首先打开监听端口:打开配置文件/etc/postgresql/版本号/main/postgresql.conf,在其中添加listen_addresses = '*'。
还要再配置认证方式:打开配置文件/etc/postgresql/版本号/main/pg_hba.conf,这是postgresql基于主机的认证配置文件(hba, host-based authentication),如下所示。

local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5
host    all             all              0.0.0.0/0               md5

这其中有TYPE、DATABASE、USER、ADDRESS、METHOD五个字段,在文末添加“host all all 0.0.0.0/0 md5”,允许所有主机用户从任何IP登录数据库,且使用md5鉴权,md5鉴权是指通过用户名和密码来登录,peer鉴权是指本地通过系统用户无密码登录。
既然远程登录通过md5鉴权,就需要给该用户设置密码。我们可以给超级管理员用户postgres配置密码:

$sudo -u postgres psql
postgres=#ALTER USER postgres WITH PASSWORD 'xxxxxxx';
postgres=#\q

注意密码要用引号括起来,且最后要有分号。
以上三个步骤修改完后,重启postgresql服务使配置生效:sudo service postgresql restart
至此,postgresql安装和配置完毕,且可以远程访问。

2. docker部署pgadmin4

通过docker部署pgadmin4是最方便的方式。首先需要拉取dpage/pgadmin4镜像:

$docker image pull dpage/pgadmin4:latest

该镜像对外开放80端口,启动该镜像时我们映射一个本地端口给它。同时,启动镜像时需要配置登录pgadmin4的用户名和密码,分别通过PGADMIN_DEFAULT_EMAIL和PGADMIN_DEFAULT_PASSWORD指定,如下所示:

$docker run \
--name pgadmin4 \
-p 81:80 \
-e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \
-e "PGADMIN_DEFAULT_PASSWORD=xxxx" \
-d dpage/pgadmin4

其中PGADMIN_DEFAULT_EMAIL参数必须填写一个合法的邮箱地址,密码为通过该邮箱地址登录pgadmin4的密码,与前面配置的数据库密码没关系。与数据库建立连接是在登录pgadmin4之后再配置的。
执行$docker ps可以看到这个镜像已经运行了一个容器,通过浏览器访问localhost:81,可打开pgadmin4登陆页,输入刚才设置的邮箱和密码则可登录pgadmin4。以后重启后,通过$docker run pgadmin4则可启动该容器。

3. pgadmin4连接postgresql

图形化的操作很简单,添加一个数据库连接就可以了。需要注意的是,由于使用docker部署pgadmin4,数据库的主机地址不能填写localhost,而应该是宿主机的ip地址,可通过$ip address查看,填写宿主机有线网卡或者无线网卡的ip地址。用户名和密码填写上节设置的postgres用户的密码。

4. 为odoo创建角色和数据库

因为要从源码安装和启动odoo,需要先创建一个数据库角色和一个odoo数据库,并将该数据库的所有权分配给该角色,在启动odoo的配置文件中配置数据库用户为该角色,且修改密码信息。odoo的安装在12月7日的日志中已经总结。补充一下首次生成默认配置文件的命令:

$ ~/odoo-dev/odoo/odoo-bin --save --stop-after-init

生成的配置文件为~/.odoorc,可打开后进行修改。其中db_name设置为刚才创建的数据库名,db_user为刚才设置的数据库角色名,db_password为其密码。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容