mysql - install_driver(mysql) 失败 : Can't locate DBD/mysql. pm

标签 mysql git perl ubuntu redmine

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

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

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

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

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

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

[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:

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

一旦我按照提到的文档将以下行添加到 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

最佳答案

为了让 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。相反,它使用单独的 Perl 安装,安装在 /opt/bitnami 中。

因此,您需要在 Perl 安装的模块库中安装 DBD::mysql。可以要求 cpan 在不同的目录中安装模块,但我对仅将内容安装到 Bitnami 的目录树中持谨慎态度。我强烈怀疑在此过程中很早就跳过了安装步骤。如果 Bitnami 需要从 Perl 程序使用 MySQL 并安装自己的 Perl 发行版及其自己的模块库,那么它应该在其安装中包含 DBD::mysql 或提供有关如何安装它的明确说明。

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

关于mysql - install_driver(mysql) 失败 : Can't locate DBD/mysql. pm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54813743/

相关文章:

mysql计算一个月中不同的天数

MySQL计算日期差异如果大于35天

Git checkout 'virtual'分支

shell - SED 或 AWK 全部替换为另一个文件中的模式

regex - 在 Perl 代码中改进(优化)现有字符串替换的任何建议?

MySQL - 选择特定的行,然后才将它们随机化

MySQL存储过程语法错误: if else

java - 用于开发几个不相关的 util 包的层次结构

git - Gerrit :! [远程拒绝] HEAD -> refs/for/master(内部服务器错误)

perl - 如果第二级或第三级部分元素中的条件匹配,则更改属性值