【发布时间】: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 的版本(从
cpanshell 中发出force test DBD::mysql然后发出force install DBD::mysql当且仅当测试成功。)