You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Strawberry Perl 5.40(.2) - DBD::MariaDB与MariaDB 11.7连接异常

Perl DBI连接MariaDB报错:找不到'boot_DBD__MariaDB'符号

问题详情

已安装最新版C Connector(libmariadb.dll v3.4.5),但使用DBI尝试连接数据库时出现以下错误:

install_driver(MariaDB) failed: Can't find 'boot_DBD__MariaDB' symbol in C:/Strawberry/perl/site/lib/libMariaDB.dll at (eval 5) line 3. Compilation failed in require at (eval 5) line 3

用户使用的代码:

use DBI;
use strict;
my ($driver,$database,$host,$dsn,$userid,$password,$dbh);
$driver = "MariaDB";
$database = "DBRIDGE";
$host = "localhost";
$dsn = "DBI:$driver:database=$database:host=$host";
$userid = "root";
$password = "mypassword";
$dbh = DBI->connect($dsn, $userid, $password ) or die "Prepare statement failed:    $dbh->errstr()";
print "Connected to database on $host\n";

解决办法

  • 安装DBD::MariaDB Perl驱动模块:你仅安装了C语言层面的连接器,但Perl的DBI需要对应的Perl驱动模块。打开Strawberry Perl的命令提示符,执行cpanm DBD::MariaDB(若未安装cpanm,可改用cpan DBD::MariaDB)完成安装,安装过程会自动关联libmariadb.dll。
  • 配置libmariadb.dll的系统路径:确保libmariadb.dll所在目录被添加到系统PATH环境变量中,或者将该dll文件复制到Strawberry Perl的bin目录下(推荐使用环境变量配置的方式)。
  • 验证驱动模块加载:安装完成后,在Perl命令行执行以下代码,无报错则说明模块正常:
    use DBD::MariaDB;
    print "DBD::MariaDB 加载成功\n";
    
  • 修正代码中的错误:原代码的die语句中,$dbh->errstr()写法错误——连接失败时$dbh未初始化,应改用$DBI::errstr,修正后:
    $dbh = DBI->connect($dsn, $userid, $password ) or die "连接失败: $DBI::errstr";
    

内容的提问来源于stack exchange,提问作者Derek Logie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 00:57:41