Đã xảy ra lỗi ở trên khi tôi đang cố gắng tạo plperlu ngôn ngữ. Nó chỉ ra rằng thiếu thư viện libperl.so. Kiểm tra các bước được thực hiện để khắc phục sự cố này và tạo thành công ngôn ngữ plperlu trong PostgreSQL.
Phương pháp 1 (Tìm libperl.so và tạo liên kết mềm đến vị trí đó)
postgres=# create LANGUAGE plperlu;
ERROR: could not load library "/opt/PostgreSQL/9.0/lib/postgresql/plperl.so": libperl.so: cannot open shared object file: No such file or directory
postgres=# q
Bây giờ, hãy tìm kiếm tệp libperl.so trên hộp của bạn và thêm vị trí đó vào LD_LIBRARY PATH của bạn. Đừng quên chuyển người dùng sang postgres.
[root@localhost /]# find -name libperl.so
./usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE/libperl.so
./usr/lib/perl5/CORE/libperl.so
./usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE
[root@localhost /]# su - postgres
Đặt LD_LIBRARY_PATH
-bash-4.1$ export LD_LIBRARY_PATH=/usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE:$LD_LIBRARY_PATH
Khởi động lại cụm để thực hiện các thay đổi.
-bash-4.1$ pg_ctl restart
waiting for server to shut down....... done
server stopped
server starting
Bây giờ bạn đã sẵn sàng để tạo ngôn ngữ.
-bash-4.1$ psql
psql (9.0.1)
Type "help" for help.
postgres=# create LANGUAGE plperlu;
CREATE LANGUAGE
Phương pháp 2 (Bằng cách cài đặt ActivePerl mới nhất)
Bước 1:
Sau khi cài đặt ActivePerl, hãy đặt LD_LIBRARY_PATH.
postgres@localhost:/opt/ActivePerl-5.12/lib/CORE> export LD_LIBRARY_PATH=/opt/ActivePerl-5.12/lib/CORE:/opt/PostgreSQL/9.0/lib/postgresql
Bước 2:
postgres@localhost:/opt/PostgreSQL/9.0/lib/postgresql> ldd plperl.so
linux-vdso.so.1 => (0x00007fff8cf79000)
libperl.so => /opt/ActivePerl-5.12/lib/CORE/libperl.so (0x00007fbd3d654000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fbd3d40a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fbd3d206000)
libm.so.6 => /lib64/libm.so.6 (0x00007fbd3cfb0000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fbd3cd74000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007fbd3cb71000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbd3c954000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbd3c5f5000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbd3dad8000)
Bước 3:
postgres@localhost:/opt/PostgreSQL/9.0/lib/postgresql> pg_ctl restart
postgres@localhost:/opt/PostgreSQL/9.0/lib/postgresql> psql
psql (9.0.2)
Type "help" for help.
postgres=# create language plperlu;
CREATE LANGUAGE
Đăng nhận xét của bạn.