zoukankan      html  css  js  c++  java
  • Docker安装带中文全文搜索插件zhparser的Postgresql数据库

    上一篇讲了在已经安装了PG数据库的情况下,安装全文搜索插件zhparser遇到的问题。在一个全新的环境中安装带有全文搜索插件zhparser的PG数据库,可以使用已经做好的Docker镜像,在安装的过程中,我来说说我遇到过的问题,大部分问题来自postgresql镜像。

    1、拉取zhparser的镜像

    基本运行命令:

    docker run -p 5432:5432 chenxinaz/zhparser
    

    在docker hub中zhparser项目的地址,https://hub.docker.com/r/chenxinaz/zhparser,这个镜像基于postgresql的镜像来做的,包含postgresql的数据库,不用额外安装postgresql数据库。上面的运行命令测试还可以,不建议正式使用。

    2、初始化插件

    在指定数据库初始化插件,运行下面SQL:

    CREATE EXTENSION zhparser;
    CREATE TEXT SEARCH CONFIGURATION chinese_zh (PARSER = zhparser);
    ALTER TEXT SEARCH CONFIGURATION chinese_zh ADD MAPPING FOR n,v,a,i,e,l WITH simple;
    

    测试插件是否安装成功SQL:

    select ts_debug('chinese_zh', '白垩纪是地球上海陆分布和生物界急剧变化、火山活动频繁的时代');
    

    3、关于postgresql镜像的高级参数

    zhparser的可用环境参数大部分来自postgresql镜像,可以直接查看postgresql进行的环境参数。在初始化容器的时候,不设定容器参数,之后改起来就很麻烦。

    3.1、指定数据库用户和密码

    docker run -d --name pg -e POSTGRES_PASSWORD=password  chenxinaz/zhparser
    

    能指定的环境参数:

    • POSTGRES_PASSWORD
    • POSTGRES_USER
    • POSTGRES_DB
    • POSTGRES_INITDB_ARGS
    • POSTGRES_INITDB_WALDIR
    • PGDATA

    3.2、推荐一组比较好用的命令

    这组命令能挂载配置目录,挂载数据库目录,挂载初始化目录,用于数据库的初始化。

    #复制一个配置文件的副本到本地目录
    $ docker run -i --rm postgres cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf
    
    # 指定配置文件的位置
    $ docker run -d 
    -p 15432:5432  
    -e POSTGRES_PASSWORD=password 
    -v "$本地配置文件位置/postgres.conf":/etc/postgresql/postgresql.conf 
    -v "$本地数据文件位置/data":/var/lib/postgresql/data 
    -v "$初始化脚本位置/docker-entrypoint-initdb.d":/docker-entrypoint-initdb.d 
    --name=pg 
    chenxinaz/zhparser 
    -c 'config_file=/etc/postgresql/postgresql.conf'
    

    其中"$初始化脚本位置"中能用的脚本,可以是sql文件、压缩文件、可执行文件。例如:

    #!/usr/bin/env bash
    
    # Import SQL
    echo -n "=======IMPORT SQL DATA======="
    createdb -U postgres test
    
    psql -U postgres test < /docker-entrypoint-initdb.d/test.sql
    echo "=======IMPORT SQL DONE======="
    

    其他参考官方项目文档:https://hub.docker.com/_/postgres。

    4、常用备份

    4.1、导出数据库:

    docker exec -it pg pg_dump -h localhost -U postgres 数据库名 >/data/dum.sql
    

    4.2、导入数据库:

    docker exec -i pg psql -U postgres 数据库名 < /data/dum.sql
    
  • 相关阅读:
    友盟—安卓巴士【Android开发原创教程大赛】
    iOS开发视频教程下载/iphone开发视频教程下载
    发一个Android开发的外包项目。欢迎外包团队来骚扰
    安卓巴士总结了近百个Android优秀开源项目,覆盖Android开发的每个领域
    安卓巴士精选Android开发教程
    做了一个系列的Android开发教程列表
    深刻理解C#的传值调用和传引用调用
    《CLR Via C# 第3版》笔记之(四) 类中字段的默认赋值
    《CLR Via C# 第3版》笔记之(七) const和readonly
    《CLR Via C# 第3版》笔记之(十二) 事件
  • 原文地址:https://www.cnblogs.com/ginponson/p/11746754.html
Copyright © 2011-2022 走看看