问下有没有人用laravel连接过金仓数据库的?

情况是这样的,我公司接了一个项目,对方要求国产化,然后呢我们代码原先对接的是mysql,现在要换成国产化数据库,然后我找到金仓数据库,但是我看到官网上面就没有php7.4的驱动,然后我想用odbc连接,但是我不知道怎么用odbc连接金仓数据库,就问下有没有知道的?

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

要在 Laravel 项目中连接并使用金仓数据库(KingbaseES 数据库),可以通过以下步骤实现:

1. 安装 Kingbase 驱动

Laravel 默认不提供对金仓数据库的支持,因此首先需要确保你的 PHP 环境能够连接金仓数据库。金仓数据库支持 ODBC 或 PDO 扩展来与 PHP 一起工作。

你需要安装金仓数据库的 PDO 驱动。首先检查金仓数据库的文档,确保正确安装了金仓数据库的 PHP PDO 驱动程序。

2. 安装 ODBC 扩展 (如果需要)

如果你打算使用 ODBC 连接金仓数据库,确保在 PHP 中安装并启用了 ODBC 扩展:

sudo apt-get install php-odbc

在你的 php.ini 文件中启用 ODBC:

extension=odbc
  1. 配置数据库连接 在 Laravel 项目中,打开 .env 文件并添加连接金仓数据库的配置信息:
DB_CONNECTION=kingbase
DB_HOST=your-kingbase-host
DB_PORT=54321
DB_DATABASE=your-database-name
DB_USERNAME=your-username
DB_PASSWORD=your-password

注意: 更改 DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME 和 DB_PASSWORD 为金仓数据库的实际配置值。

4. 修改数据库配置

接下来,修改 config/database.php 文件,添加对 kingbase 连接的支持。

在 connections 数组中,添加一个新的 kingbase 配置项:

'connections' => [
    // Other connections...

    'kingbase' => [
        'driver' => 'pgsql',  // 如果是基于 PostgreSQL 的 KingbaseES,可以使用 pgsql 驱动
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '54321'),
        'database' => env('DB_DATABASE', 'your-database-name'),
        'username' => env('DB_USERNAME', 'your-username'),
        'password' => env('DB_PASSWORD', 'your-password'),
        'charset' => 'utf8',
        'prefix' => '',
        'schema' => 'public',  // 根据你的金仓数据库的实际情况调整
        'sslmode' => 'prefer',
    ],
],

5. 运行迁移

设置完成后,你可以像使用其他数据库一样在 Laravel 中使用金仓数据库。你可以通过 Artisan 命令运行迁移:

php artisan migrate

6. 测试连接

为了确保 Laravel 能够连接到金仓数据库,尝试从数据库中获取数据。例如,你可以在路由或控制器中运行以下代码来测试连接:

use Illuminate\Support\Facades\DB;

Route::get('/test-kingbase', function () {
    $results = DB::connection('kingbase')->select('SELECT * FROM your_table');
    return response()->json($results);
});

这会输出你从金仓数据库获取的数据。

注意事项

驱动兼容性:金仓数据库基于 PostgreSQL 内核,因此在某些情况下,你可以尝试使用 PostgreSQL 驱动来连接数据库。但如果有特定的金仓数据库特性,可能需要定制驱动或额外的配置。

ODBC 连接:如果通过 ODBC 连接,则需要配置 ODBC DSN,并在 config/database.php 中相应调整连接设置。

来自 chatgpt

4个月前 评论
wget -O kbodbc.tar.gz https://kingbase.oss-cn-beijing.aliyuncs.com/KES_INTERFACE/V9/odbc/x86/v9r1_odbc_x86_64.tar.gz

mkdir -p /mnt/kingbase && tar xvf kbodbc.tar.gz --directory=/mnt/kingbase && chown -R 755 /mnt/kingbase

# debian / ubuntu
# 使用sury源
apt install unixodbc php7.4-odbc

# RHEL / Alma / Rocky 使用 remi 源
dnf install php74-php-odbc unixODBC

/etc/odbcinst.ini 配置kingbase源
/etc/odbc.ini配置数据库连接
php 通过 pdo-odbc 连接

官网的linux下配置数据源的详细说明:

help.kingbase.com.cn/v8/developmen...

4个月前 评论

可以不用odbc,如果你买了人大金仓的数据库,直接找他们的人要一个php7.4的,人大金仓的扩展。他们售后很好。

4个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!