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

如何解决Cygwin下Perl无法访问MySQL 8.xx数据库的问题?

解决Cygwin Perl脚本连接MySQL 8.0的caching_sha2_password及DBD::MariaDB安装问题

方案一:修复DBD::MySQL以支持caching_sha2_password(无需回退密码格式)

问题根源是Cygwin下的DBD::MySQL依赖的客户端库找不到caching_sha2_password插件,可通过绑定WAMP自带的MySQL 8.0库解决:

  • 找到WAMP中MySQL 8.0的安装路径,例如默认路径为/cygdrive/c/wamp64/bin/mysql/mysql8.0.39
  • 设置环境变量让Perl能加载WAMP的MySQL库:
    export LD_LIBRARY_PATH="/cygdrive/c/wamp64/bin/mysql/mysql8.0.39/bin:$LD_LIBRARY_PATH"
    
  • 重新编译DBD::MySQL,指定WAMP的MySQL配置工具路径:
    cpanm DBD::MySQL --configure-args="--mysql-config=/cygdrive/c/wamp64/bin/mysql/mysql8.0.39/bin/mysql_config.exe"
    
    若编译时提示头文件缺失,补充指定头文件和库路径:
    cpanm DBD::MySQL --configure-args="--mysql-include=/cygdrive/c/wamp64/bin/mysql/mysql8.0.39/include --mysql-lib=/cygdrive/c/wamp64/bin/mysql/mysql8.0.39/lib"
    

方案二:正确安装DBD::MariaDB

之前安装失败是因为缺少MariaDB开发依赖,按以下步骤操作:

  • 打开Cygwin的setup.exe,搜索并安装以下包:
    • libmariadb-devel(MariaDB开发库)
    • mariadb-client(MariaDB客户端)
  • 安装完成后,通过CPAN安装DBD::MariaDB:
    cpanm DBD::MariaDB
    
    若仍提示找不到mariadb_config,手动指定路径:
    cpanm DBD::MariaDB --configure-args="--mariadb-config=/usr/bin/mariadb_config"
    

方案三:ODBC连接替代方案(兼容性最强)

如果上述编译方案仍有问题,可改用Windows ODBC驱动绕开Cygwin客户端库限制:

  • 在Windows系统安装MySQL ODBC 8.0 Unicode Driver
  • 在Cygwin中安装DBD::ODBC:
    cpanm DBD::ODBC
    
  • Perl脚本中使用ODBC连接字符串:
    use DBI;
    my $dsn = 'dbi:ODBC:Driver={MySQL ODBC 8.0 Unicode Driver};Server=localhost;Database=你的数据库名;User=你的用户名;Password=你的密码;';
    my $dbh = DBI->connect($dsn, '', '', { RaiseError => 1 });
    

内容的提问来源于stack exchange,提问作者Les Lewis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 17:55:06