人大金仓数据库 Laravel5.x 兼容问题处理

TOC

基础版本信息

人大金仓V8R3
Laravel 5.x
centos7.x

魔改数据库文件

\vendor\laravel\framework\src\Illuminate\Database\Connectors\ConnectionFactory.php
246 行,增加 case 'kdb':case 'pgsql' 上方
278 行,增加 case 'kdb':case 'pgsql' 上方

\vendor\laravel\framework\src\Illuminate\Database\Connectors\ConnectionFactory.php
145 行,替换数据库 DSN

// $dsn="pgsql:{$host}dbname={$database}"
$dsn="kdb:{$host}dbname={$database}"

扩展加载

php.ini 文件中增加

extension=pdo_kdb
extension=pdo_pgsql

数据库配置修改

Laravel database.php 中配置 default 为 pgsql,pgsql 中的 driver 改为 kdb 其他看情况改,别忘了 PG 比 MYSQL 多了一层 schema。

libkdb.so.5 未找到问题

1 要特别注意 pdo_kdb.so 的版本问题,尽量接近你要部署的 PHP版本
2 对着你的 php 扩展目录内的随便一个扩展来一下 ldd 命令,找下路径,然后把官方提供的动态库 libkci.so.5 放入你的程序加载位置中。
关于 ldd 命令的效果如下

# ldd /bin/lnlibc.so.6

 => /lib/libc.so.6 (0×40021000)/lib/ld-linux.so.2

=> /lib/ld- linux.so.2 (0×40000000)

libssl.so.6 未找到问题

要小心在 docker 中使用造成的 openssl 依赖库丢失,这个 shit 数据库引用了一个 0.9.8e 的 openssl 库,如果你使用较新的操作系统可能不包含相应的动态库文件,要么你自己在容器对应的 Linux发行版内编译一份上古版本的 openssl 动态库,要么你换一个linux发行版。

posted @ 2020-11-25 13:59  我听不见  阅读(699)  评论(0编辑  收藏  举报