install_driver(mysql) 失败:找不到 DBD/mysql.pm

install_driver(mysql) failed: Can't locate DBD/mysql.pm

问题没有重复,先看我遇到的问题,如果重复了就标出来,如果重复我的问题对解决我的问题有帮助,因为我已经经历了所有link在其他类似的问题和问题中提到了s和解决方案,但没有运气。

我正在尝试在下面 link

的帮助下在我的 ec2-aws-instance 上设置 redmine git

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

我能够将 redmine 项目与我的 git 代表 ositories 正确连接,但是一旦我到达上面的第三步 link 我面临如下问题

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

以下是尝试使用 redmine 用户凭据保护我的 git 代表os 时出现的错误。

[Thu Feb 21 17:46:26.918619 2019] [perl:error] [pid 26820:tid 139790464616192] [client 127.0.0.1:50156] install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /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) at (eval 6) line 3.\nPerhaps the DBD::mysql perl module hasn't been fully installed,\nor perhaps the capitalisation of 'mysql' isn't right.\nAvailable drivers: DBM, ExampleP, File, Gofer, Proxy, Sponge.\n at /opt/bitnami/perl/lib/site_perl/5.16.3/x86_64-linux-thread-multi/Apache/Redmine.pm line 557.\n App 26921 stdout:

没有第三步,我的代表os故事是public,任何知道回购url的人都可以克隆我的代表os或对我的[=执行其他操作43=]代表os。所以第三步是安全 purpose 按照上面的文档 link 这对我很重要。

一旦我按照提到的文档将以下行添加到 apache 配置中,当我尝试克隆 repository

时,我的 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>

当我 运行 使用以下命令克隆一个 repo 时,没有关于文档的第三步,我能够正确地克隆 repo,但是第三步我失败了,并且在日志和下面出现了以上错误命令行错误。

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

我的 os 是

Ubuntu 16.04.5 LTS \n \l

为了让 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 的支持渠道。