【问题标题】:Perl script that has worked with MySQL for years no longer works after upgrading to MariaDB与 MySQL 合作多年的 Perl 脚本在升级到 MariaDB 后不再有效
【发布时间】:2020-03-23 15:15:24
【问题描述】:

我创建了这个 Perl 脚本来自动更新一堆 CMS 安装。它已经工作了多年。现在尝试连接到每个数据库时都失败了。这发生在将所有数据库从 MySQL 5.7 更新到 MariaDB 10.3 之后。它失败的那一行是非常基本的:

$dbh = DBI->connect($db_str, $user_str, $pass_str);

$db_str 是在这一行中构造的:

$db_str = "DBI:mysql:" . $database . ":localhost";

如果图它必须是以下两种情况之一:MariaDB 的连接字符串需要不同,或者 MariaDB 缺少 Perl 库。但是我是 MariaDB 的新手,所以我不知道。

【问题讨论】:

  • 错误信息是什么?
  • 我得到的错误是: install_driver(mysql) failed: Can't load '/usr/local/lib64/perl5/auto/DBD/mysql/mysql.so' for module DBD:: mysql:libmysqlclient.so.20:无法打开共享对象文件:/usr/lib64/perl5/DynaLoader.pm 第 190 行, 第 1 行没有这样的文件或目录。在(eval 3)第 3 行。编译失败在 (eval 3) 第 3 行, 第 1 行需要。可能在 ./update_db_local.pl 第 50 行的预期位置没有安装所需的共享库或 dll。
  • 您可能必须重新安装 DBD::mysql 才能获得链接到新 .so 的版本(从 cpan shell 中发出 force test DBD::mysql 然后发出 force install DBD::mysql 当且仅当测试成功。)

标签: mysql perl mariadb dbi


【解决方案1】:

发现问题:脚本顶部的 Perl 库的路径已更改。这个:

#!/usr/bin/perl

需要改成:

#!/usr/local/cpanel/3rdparty/bin/perl

它特定于服务器的设置,可能在更新期间发生了变化。谢谢!

【讨论】:

    猜你喜欢
    • 2021-05-25
    • 1970-01-01
    • 2013-10-12
    • 2018-11-20
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    相关资源
    最近更新 更多