
文章目录环境症状问题原因解决方案环境系统平台银河麒麟 X86_64,银河麒麟 鲲鹏版本9.0.4,9.0.3症状创建plpython3u 插件test01# create extension plpython3u;CREATEEXTENSION创建函数报错test01# CREATE OR REPLACE FUNCTION hello_world()test01-# RETURNS text AS $$test01$# return Hello, PostgreSQL with Python3!test01$# $$ LANGUAGE plpython3u;服务器意外地关闭了联接 这种现象通常意味着服务器在处理请求之前 或者正在处理请求的时候意外中止 与服务器的连接已断开正在试图重置: 失败。!?败。!?问题原因查看数据库自带的python3u的版本#01-p24x9llq#pwd /hgsoft/10001/hgdbv9/lib/postgresql #01-p24x9llq#ldd plpython3.so linux-vdso.so.1 (0x00007fff58f4c000) libpython3.11.so.1.0 /hgsoft/10001/hgdbv9/lib/postgresql/./../libpython3.11.so.1.0 (0x000014c360bd3000) libpthread.so.0 /usr/lib64/libpthread.so.0 (0x000014c360b95000) libc.so.6 /usr/lib64/libc.so.6 (0x000014c3609dd000) libdl.so.2 /usr/lib64/libdl.so.2 (0x000014c3609d8000) libutil.so.1 /usr/lib64/libutil.so.1 (0x000014c3609d3000) libm.so.6 /usr/lib64/libm.so.6 (0x000014c360850000) /lib64/ld-linux-x86-64.so.2 (0x000014c3615a0000)查看系统的python版本#01-p24x9llq# python3 --version Python 3.7.9问题原因为系统自带python环境版本3.与插件所需的3.11版本不同。解决方案备份数据库自带的动态链接库然后用系统的替代数据库自带的进行替换。$cp /hgsoft/10001/hgdbv9/lib/libpython3.11.so.1.0 /hgsoft/10001/hgdbv9/lib/libpython3.11.so.1.0.old $cp /usr/lib64/libpython3.so /hgsoft/10001/hgdbv9/lib/libpython3.11.so.1.0验证数据库python3u插件test01# CREATE OR REPLACE FUNCTION hello_world()test01-# RETURNS text AS $$test01$# return Hello, PostgreSQL with Python3!test01$# $$ LANGUAGE plpython3u;CREATEFUNCTIONtest01# SELECT hello_world();hello_world---------------------------------Hello,PostgreSQLwithPython3!(1行记录)