<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                >?PostgreSQL設計的初衷為易于擴展,而安裝的擴展功能就可以像內置的特性一樣在數據庫中運行 **安裝擴展前置條件:** 1. 如果以源碼方式進行編譯安裝,則需要源碼目錄和安裝目錄存在 2. 如果以yum或者rpm方式安裝,則所在服務器需要可以訪問到對應的yum源 **以源碼安裝方式安裝擴展的三種方式:** 1. pgsql的源碼目錄的`contrib/ `目錄下包含了多個可直接編譯安裝的擴展,只需要進入該目錄,進入對應的擴展目錄下,執行`make && make install`即可 2. 手動自定義安裝方式:pgsql的擴展是支持獨立開發的,此方法適用于所有使用擴展規范構建的contrib模塊。詳見[自定義創建擴展]() 3. 在安裝目錄下直接引用外部編譯好的so文件以及sql文件。 **實例一:引用外部so擴展的方式安裝last、first聚合擴展:** > 此方式實現后,可以直接在sql語句中直接使用last、first聚合函數 > 擴展文件下載地址:https://debian.pkgs.org/sid/debian-main-amd64/postgresql-13-first-last-agg_0.1.4-4-gd63ea3b-3+b1_amd64.deb.html 1、解壓擴展文件 ``` // 該擴展文件為.deb壓縮包,可以直接使用dpkg命令進行解壓 [root@izwz91quxhnlkan8kjak5hz ~]# yum install -y dpkg.x86_64 // 解壓.deb文件到 ./postgresql_last_first_agg/目錄下 [root@izwz91quxhnlkan8kjak5hz ~]# dpkg -X postgresql-13-first-last-agg_0.1.4-4-gd63ea3b-3.pgdg90+1_amd64.deb ./postgresql_last_first_agg/ ``` 2、將解壓后文件夾內的so文件和sql文件拷貝至對應的安裝目錄下 ``` [root@izwz91quxhnlkan8kjak5hz ~]# cd postgresql_last_first_agg/ [root@izwz91quxhnlkan8kjak5hz postgresql_last_first_agg]# ll usr/lib/postgresql/13/lib/first_last_agg.so -rw-r--r-- 1 root root 5984 10月 19 04:14 usr/lib/postgresql/13/lib/first_last_agg.so // 拷貝usr/lib/postgresql/13/lib/first_last_agg.so到安裝目錄的lib目錄下 [root@izwz91quxhnlkan8kjak5hz postgresql_last_first_agg] cp usr/lib/postgresql/13/lib/first_last_agg.so /www/server/postgresql/lib/ [root@izwz91quxhnlkan8kjak5hz postgresql_last_first_agg]# ll usr/share/postgresql/13/extension/ 總用量 16 -rw-r--r-- 1 root root 307 10月 19 04:14 first_last_agg--0.1.0--0.1.1.sql -rw-r--r-- 1 root root 0 10月 19 04:14 first_last_agg--0.1.1--0.1.2.sql -rw-r--r-- 1 root root 0 10月 19 04:14 first_last_agg--0.1.2--0.1.3.sql -rw-r--r-- 1 root root 0 10月 19 04:14 first_last_agg--0.1.3--0.1.4.sql -rw-r--r-- 1 root root 1397 10月 19 04:14 first_last_agg--0.1.4.sql -rw-r--r-- 1 root root 166 10月 19 04:14 first_last_agg.control -rw-r--r-- 1 root root 288 10月 19 04:14 first_last_agg--unpackaged--0.1.0.sql // 拷貝usr/share/postgresql/13/extension/6目錄下的所有sql文件到安裝目錄的extension目錄下 [root@izwz91quxhnlkan8kjak5hz postgresql_last_first_agg] cp usr/share/postgresql/13/extension/* /www/server/postgresql/share/extension/ ``` 3、更改安裝目錄下的so文件和sql文件的用戶組和權限 ``` [root@izwz91quxhnlkan8kjak5hz ~]# chown postgres:postgres /www/server/postgresql/lib/first_last_agg.so [root@izwz91quxhnlkan8kjak5hz ~]# chmod 755 /www/server/postgresql/lib/first_last_agg.so [root@izwz91quxhnlkan8kjak5hz ~]# chown postgres:postgres /www/server/postgresql/share/extension/first_last_agg* [root@izwz91quxhnlkan8kjak5hz ~]# chmod 644 /www/server/postgresql/share/extension/first_last_agg* ``` 4、進入數據庫執行添加擴展即可 ``` create extension first_last_agg; ``` ![](https://img.kancloud.cn/61/e7/61e7b98e25facbe00354f38ce8a56b85_801x568.png) **實例二:安裝pgsql自帶的pg_trgm擴展** > pg_trgm擴展是用于字符串的相似度匹配,在特定場景下可以用于全文檢索字符串匹配。 > 此擴展的功能作用詳見 [pgsql模糊查詢不走索引的解決方案](pgsql%E6%A8%A1%E7%B3%8A%E6%9F%A5%E8%AF%A2%E4%B8%8D%E8%B5%B0%E7%B4%A2%E5%BC%95%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.md) 1、pg_trgm擴展為pgsql自帶的擴展,位置在源碼目錄的`contrib`目錄下,因此,只需切換到該目錄的對應擴展目錄下 ``` [root@izwz91quxhnlkan8kjak5hz postgresql-13.0]# cd contrib/ [root@izwz91quxhnlkan8kjak5hz contrib]# ls adminpack bool_plperl cube file_fdw intagg lo pageinspect pg_prewarm pg_trgm sepgsql tcn uuid-ossp amcheck btree_gin dblink fuzzystrmatch intarray ltree passwordcheck pgrowlocks pg_visibility spi test_decoding vacuumlo auth_delay btree_gist dict_int hstore isn ltree_plpython pg_buffercache pg_standby postgres_fdw sslinfo tsm_system_rows xml2 auto_explain citext dict_xsyn hstore_plperl jsonb_plperl Makefile pgcrypto pg_stat_statements README start-scripts tsm_system_time bloom contrib-global.mk earthdistance hstore_plpython jsonb_plpython oid2name pg_freespacemap pgstattuple seg tablefunc unaccent [root@izwz91quxhnlkan8kjak5hz contrib]# cd pg_trgm/ [root@izwz91quxhnlkan8kjak5hz pg_trgm]# ls data Makefile pg_trgm--1.1--1.2.sql pg_trgm--1.3--1.4.sql pg_trgm--1.4--1.5.sql sql trgm_gist.c trgm_op.c expected pg_trgm--1.0--1.1.sql pg_trgm--1.2--1.3.sql pg_trgm--1.3.sql pg_trgm.control trgm_gin.c trgm.h trgm_regexp.c ``` 2、執行`make`和`make install`命令,這兩個命令會自動拷貝編譯后的相關文件至安裝目錄(因為在安裝的時候已經設置好了全局變量,如果未自動拷貝,則需要手動拷貝過去), ``` // 執行完make命令后,可以看到該命令已經自動將編譯結果拷貝至安裝目錄的lib下:/www/server/postgresql/lib [root@izwz91quxhnlkan8kjak5hz pg_trgm]# make make -C ../../src/backend generated-headers make[1]: 進入目錄“/postgresql/postgresql-13.0/src/backend” ... -O2 -fPIC -shared -o pg_trgm.so trgm_gin.o trgm_gist.o trgm_op.o trgm_regexp.o -L../../src/port -L../../src/common -Wl,--as-needed -Wl,-rpath,'/www/server/postgresql/lib',--enable-new-dtags // make install:安裝擴展,此命令會將擴展文件(.sql文件)拷貝至安裝目錄的share/extension目錄下 [root@izwz91quxhnlkan8kjak5hz pg_trgm]# make install ... /usr/bin/install -c -m 644 ./pg_trgm--1.4--1.5.sql ./pg_trgm--1.3--1.4.sql ./pg_trgm--1.3.sql ./pg_trgm--1.2--1.3.sql ./pg_trgm--1.1--1.2.sql ./pg_trgm--1.0--1.1.sql '/www/server/postgresql/share/extension/' ``` 3、更改安裝目錄下新增的`pg_trgm.so`文件和.sql相關文件的權限和用戶組 ``` [root@izwz91quxhnlkan8kjak5hz lib]# ll pg_trgm.so -rwxr-xr-x 1 root root 58264 3月 29 22:56 pg_trgm.so [root@izwz91quxhnlkan8kjak5hz lib]# chown postgres:postgres pg_trgm.so [root@izwz91quxhnlkan8kjak5hz lib]# chmod 755 pg_trgm.so [root@izwz91quxhnlkan8kjak5hz lib]# ll pg_trgm.so -rwxr-xr-x 1 postgres postgres 58264 3月 29 22:56 pg_trgm.so [root@izwz91quxhnlkan8kjak5hz lib]# cd ../share/extension/ [root@izwz91quxhnlkan8kjak5hz extension]# chown postgres:postgres pg_trgm* [root@izwz91quxhnlkan8kjak5hz extension]# chmod 644 pg_trgm* ``` 4、進入數據庫,執行`create extension pg_trgm`命令,添加擴展 ![](https://img.kancloud.cn/e0/1e/e01ebc039e08d70c3c3621f3d982a281_323x207.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看