【问题标题】:install_driver(mysql) failed: Can't locate DBD/mysql.pminstall_driver(mysql) 失败:找不到 DBD/mysql.pm
【发布时间】:2019-07-15 18:14:57
【问题描述】:

问题不重复,首先阅读我面临的问题,如果重复,则标记它,如果重复我的问题有助于我解决我的问题,这将很有帮助,因为我已经浏览了所有链接和解决方案提到其他类似的问题和问题,但没有运气。

我正在尝试借助以下链接在我的 ec2-aws-instance 上设置 redmine git

https://docs.bitnami.com/installer/how-to/configure-advanced-integration-git-redmine/

我能够将 redmine 项目与我的 git 存储库正确连接,但是一旦我到达上述链接的第三步,我将面临如下问题

步骤:- 3 配置 Git 访问控制

以下是尝试使用 redmine 用户凭据保护我的 git 存储库时出现的错误。

[2019 年 2 月 21 日星期四 17:46:26.918619] [perl:error] [pid 26820:tid 139790464616192] [客户端 127.0.0.1:50156] install_driver(mysql) 失败:在@INC 中找不到 DBD/mysql.pm(@INC 包含: /opt/bitnami/git/lib/site_perl/5.16.3 /opt/bitnami/perl/lib/5.16.3/x86_64-linux-thread-multi /opt/bitnami/perl/lib/5.16.3 /opt/bitnami/perl/lib/site_perl/5.16.3/x86_64-linux-thread-multi /opt/bitnami/perl/lib/site_perl/5.16.3 /opt/bitnami/perl/lib/5.16.3/x86_64-linux-thread-multi /opt/bitnami/perl/lib/site_perl/5.16.3/x86_64-linux-thread-multi /bitnami/ruby23stack-linux-x64/output/perl/lib/site_perl/5.16.3/x86_64-linux-thread-multi /bitnami/ruby23stack-linux-x64/output/perl/lib/site_perl/5.16.3 /bitnami/ruby23stack-linux-x64/output/perl/lib/5.16.3/x86_64-linux-thread-multi /bitnami/ruby23stack-linux-x64/output/perl/lib/5.16.3 。 /opt/bitnami/apache2) 在 (eval 6) 第 3 行。\n可能是 DBD::mysql perl 模块尚未完全安装,\也可能是大写的 'mysql' 不正确。\n可用驱动程序:DBM、ExampleP、File、Gofer、 代理,海绵。\n 在 /opt/bitnami/perl/lib/site_perl/5.16.3/x86_64-linux-thread-multi/Apache/Redmine.pm 第 557 行。\n 应用 26921 标准输出:

如果没有第三步,我的存储库是公开的,任何知道 repo url 的人都可以克隆我的 repos 或在我的 git repos 上执行其他操作。所以第三步是出于安全目的,按照上面的文档链接,这对我来说很重要。

根据提到的文档将以下行添加到 apache 配置中后,当我尝试克隆存储库时,我的 bitnami 日志中出现上述错误

 <Location "/">
       AuthType Basic
       AuthName "Redmine git repositories"
       Require valid-user

       PerlAccessHandler Apache::Authn::Redmine::access_handler
       PerlAuthenHandler Apache::Authn::Redmine::authen_handler
       RedmineDSN "DBI:mysql:database=bitnami_redmine;host=localhost;mysql_socket=installdir/mysql/tmp/mysql.sock"
       RedmineDbUser "REDMINE_DB_USERNAME"
       RedmineDbPass "REDMINE_DB_PASSWORD"
       RedmineGitSmartHttp yes
     </Location>

当我运行以下命令来克隆存储库时,没有文档的第三步,我可以正确地克隆存储库,但是第三步我失败了,并且在日志中出现了错误,在命令行中出现了错误。

bitnami@127.0.0.1:/tmp$ git clone http://git.domain.com/test2
Cloning into 'test2'...
fatal: unable to access 'http://git.domain.com/test2/': The requested URL returned error: 500

我什至尝试安装下面的包,但没有运气

sudo apt-get install libdbd-mysql-perl

我的操作系统是

Ubuntu 16.04.5 LTS \n \l

【问题讨论】:

  • 您正在安装正确的软件包,但所有 /opt/bitnami 的内容表明您没有使用该软件包所针对的系统 Perl,这就是找不到该模块的原因。
  • 我在 Azure 上的 Ubuntu 16.04 上的股票 Bitnami 3.4.6-1 上遇到了类似的问题。 System Perl 是 5.22,而 Bitnami 的 Perl 版本是 5.16,所以不能使用“libdbd-mysql-perl”包。我相信 DBD MySQL 模块没有打包在上面的 Bitnami 版本中。由于时间不够,我将相关的 MySQL 文件从 Bitnami 3.3.x(具有 Bitnami Perl 5.16)复制到 /opt/bitnami/perl/lib/site_perl/5.16.3/x86_64-linux-thread-multi/ 并重新启动 Bitnami 服务,并且它起作用了。您还可以检查是否调整 /opt/bitnami/apache2/bin/envvars 以使用系统 Perl 和 DBD::MySQL 解决您的问题。

标签: mysql git perl ubuntu redmine


【解决方案1】:

为了让 Perl 安装与 MySQL 数据库通信,它需要使用 DBD::mysql 模块。该模块不是标准 Perl 安装的一部分,需要单独安装。当您使用 CPAN 命令行工具 (cpan DBD::mysql) 或使用 apt-get (apt-get install libdbd-mysql-perl) 安装它时,它会安装在系统 Perl 使用的库目录中(作为操作系统的一部分安装的库目录) .您可以通过运行以下命令来确认它已正确安装:

$ perldoc DBD::mysql
$ perl -MDBD::mysql -le'print $DBD::mysql::VERSION'

如果 DBD::mysql 安装正确,第一个命令会显示模块的文档,第二个会给出版本号。

但是,正如我所说,这是为系统 Perl 安装而安装的。从您看到的错误消息中可以看出,您的 Bitnami 安装未使用系统 Perl。相反,它使用安装在 /opt/bitnami 中的单独 Perl 安装。

因此,您需要在模块库中安装 DBD::mysql 以进行 Perl 安装。可以要求cpan 将模块安装在不同的目录中,但我会谨慎地将东西安装到 Bitnami 的目录树中。我强烈怀疑在这个过程的早期已经跳过了一个安装步骤。如果 Bitnami 需要从 Perl 程序中使用 MySQL 并安装自己的 Perl 发行版以及自己的模块库,那么它应该在其安装中包含 DBD::mysql 或提供有关如何安装它的明确说明。

我的建议是仔细阅读 Bitnami 的安装说明,看看他们对安装 MySQL 支持有什么看法。如果这不起作用,您应该将此问题提交给 Bitnami 的支持渠道。

【讨论】:

  • 我得到以下第一个命令的输出:- -bash: /opt/bitnami/perl/bin/perldoc: /bitnami/ruby23stack-linux-x64/output/perl/bin/perl:错误的解释器:没有这样的文件或目录
  • @vishal-mote:将这样的信息放在评论中使其几乎无法阅读。这里有很多人愿意帮助你,但你需要让他们更容易。请编辑您的问题以添加此有用信息。
  • @vishal-mote:在我看来,您使用特殊的bitnami 用户登录系统,该用户设置了非标准路径(它运行的是 Perl 的 Bitnami 版本,而不是系统 Perl)。如果您以标准用户身份登录会发生什么?
  • 我使用推荐的 aws 市场镜像副本创建了这个服务器实例。 bitnami 是此服务器的标准用户,使用 root 用户我得到与错误解释器相同的错误
  • @vishal-mote:我想我只能重复我的建议,把它带到 Bitnami 的支持渠道。
猜你喜欢
  • 1970-01-01
  • 2013-06-13
  • 2017-04-08
  • 2020-04-06
  • 2016-08-08
  • 1970-01-01
  • 2023-04-11
  • 2016-12-14
相关资源
最近更新 更多