【问题标题】:Perl's DBD::mysql -- installation conflictPerl 的 DBD::mysql -- 安装冲突
【发布时间】:2011-02-23 16:56:18
【问题描述】:

尝试在 Windows 7 上安装 Perl 模块 DBD::mysql

从我执行的 Windows 命令行

perl -MCPAN -e 'install DBD::mysql'

下载并解压文件——然后给了我这个错误:

  CPAN.pm: Going to build C/CA/CAPTTOFU/DBD-mysql-4.018.tar.gz

Set up gcc environment - 3.4.5 (mingw-vista special r3)
C:\PROGRA~1\MySQL\MYSQLS~1.1\bin\MYSQLA~1.EXE: connect to server at 'localhost'
failed
error: 'Access denied for user 'ODBC'@'localhost' (using password: NO)'
Problem running C:\PROGRA~1\MySQL\MYSQLS~1.1\bin\MYSQLA~1.EXE - aborting ...
Warning: No success on command[C:\Perl\bin\perl.exe Makefile.PL INSTALLDIRS=site
]

猜测问题是 MySQL 的 root 用户有密码,但不清楚我是如何解决这个问题的。

问题、反馈、请求——只需发表评论,谢谢!!

---------- 更新 (1): RE: 强制安装 DBD::mysql

cpan> force install DBD::mysql
Running install for module 'DBD::mysql'
Running make for C/CA/CAPTTOFU/DBD-mysql-4.018.tar.gz
  Has already been unwrapped into directory C:\Perl\cpan\build\DBD-mysql-4.018-A
1T8Uh
  'C:\Perl\bin\perl.exe Makefile.PL INSTALLDIRS=site' returned status 256, won't
 make
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install

【问题讨论】:

  • 您在 Windows 上为 Perl 使用哪个供应商?您在文档的安装部分 (search.cpan.org/~capttofu/DBD-mysql-4.018/lib/DBD/…) 中尝试过哪些无效的操作?
  • @Robert P:谢谢,这行得通——把它作为答案发布,请随时重新发布我的笔记作为你的答案,我会删除我的,并选择你作为答案。再次,谢谢!!

标签: perl installation perl-module


【解决方案1】:

在其他平台上,构建过程运行 mysql_config 命令来获取有关 mysql 安装的必要信息,而不需要用户和密码;在 win32 上,如果您有 mysql_config 命令,则必须使用 --mysql_config yourpathname 参数明确告诉 Makefile.PL。如果你不这样做,它会查找 mysqladmin 程序并使用它的位置来尽可能多地确定,但运行mysqladmin version 来获取 mysql 版本。您可以使用 Makefile.PL 的 --testuser 和 --testpassword 参数为其提供用户/密码以执行此操作。

【讨论】:

    【解决方案2】:

    在“Robert P”评论之后,我查看了installing DBD::MySQL in ActivePerl on Win32 的安装指南; 64,但似乎并不重要。

    完成这项工作的命令是:

    ppm install DBD::mysql
    

    【讨论】:

    • 您应该说明您使用的是哪个版本的 Perl:ActivePerl 或 StrawberryPerl。
    • @dolmen: 隐藏视线是 20-20... 甚至不知道 ActivePerl 或 StrawberryPerl 正在做一些不同的事情;另外,请注意没有一个答案说明他们的解决方案不适用于 ActivePerl,或仅适用于 XYZ。
    【解决方案3】:

    我过去解决这个问题的唯一方法是强制安装。它总是感觉像一个笨蛋,但我一直无法找到更好的方法。

    打开一个 CPAN 外壳:

    perl -MCPAN -e 'shell'
    

    然后强制安装

    force install DBD::mysql
    

    quit 让你摆脱困境。

    【讨论】:

    • 谢谢,在 CPAN 会话期间尝试“强制安装 DBD::mysql”——但没有成功。我已经在“UPDATE (1) RE: force install DBD::mysql”下的问题描述中发布了输出——如果我做错了什么,请告诉我。谢谢!
    【解决方案4】:

    正如你所说,也许试试这个:

    cd  C:\Perl\cpan\build\DBD-mysql-4.018-A
    

    然后运行

    perl Makefile.PL  --testuser validuser  --testpassword validpassword
    

    然后尝试make-make test-make install, 或其在 Windows 上的等价物

    【讨论】:

    • look DBD::mysql 在 cpan shell 中将获取并解压发行版,并将您置于解压目录中的命令提示符处
    猜你喜欢
    • 2011-06-11
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 2011-05-11
    • 2017-04-26
    • 2015-01-04
    相关资源
    最近更新 更多