OSX 10.9 Mavericks上的Perl DBI / DBD问题

问题描述 投票:7回答:7

升级到OSX Mavericks后,我无法运行DBI / DBD。

Perl和MySQL运行正常(我可以登录mysql并访问我的表),但是由于更新程序删除了我以前所有可用的Perl模块,因此我的Perl脚本不再使用DBI。

我使用CPAN重新安装了DBI和DBD :: mysql,将它们安装到/opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level/。将模块(DBI,DBD和“自动”中的所有内容)复制到/Library/Perl/5.16/darwin-multi-2level/(由于cpan使用的目录不在@INC中)后,我的脚本返回内部服务器错误(即使使用FatalsToBrowser也可以)。

Apache错误日志说:

dyld: lazy symbol binding failed: Symbol not found: _Perl_Istack_sp_ptr
Referenced from: /opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level/auto/DBI/DBI.bundle
Expected in: flat namespace

dyld: Symbol not found: _Perl_Istack_sp_ptr
Referenced from: /opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level/auto/DBI/DBI.bundle
Expected in: flat namespace
Premature end of script headers: test.pl

这里有什么问题?也许是因为我复制了文件?也许我应该强制CPAN直接安装到/Library/Perl/5.16/?如何告诉CPAN这样做?

有什么想法吗?

macos perl dbi dbd osx-mavericks
7个回答
10
投票

我还没有升级到Mavericks,因为Apple不在乎升级操作系统时对Apache,PHP或Perl所做的修改-他们只是将它们全部删除了。我不知道以下列表对您来说是否很好,但是对Lion和Mountain Lion来说对我有用:

  • 开始之前,您必须正确安装和配置MySQL x86 64位。
  • 从App Store安装XCode。
  • 在XCode中,打开首选项/下载菜单,然后安装命令行工具

安装DBI:

  • 使用以下命令安装cpanmsudo cpan App::cpanminus
  • 安装DBI:sudo cpanm DBI

安装DBD :: mysql:

  • 从CPAN获取必要的文件。打开CPAN终端:sudo perl -MCPAN -e 'shell'
  • 然后,运行以下命令:get DBD::mysqlexit
  • 在编译之前,您必须创建一些别名,因为Mac上的MySQL与Linux上的安装方式不同-至少在以前的OS X版本中是这样:

cd / usr / local

sudo mkdir lib

cd lib

sudo ln -s /usr/local/mysql/lib/*.dylib。

  • 最后,您必须安装并编译该库:

cd〜/ .cpan / build / DBD * /

sudo perl Makefile.PL --testuser ='yourmysqluser'--testpassword ='yourmysqlpassword'

sudo make

sudo make test

sudo make install

cd ~/.cpan/build/DBD*/处,按*,我的意思是您应该写出实际路径,该路径将指向您刚从CPAN下载的文件。目录的名称根据最新版本而变化,但是通过简单的ls即可轻松找到它。

希望这对您有用。


编辑

这是我经过几次失败的尝试而编写的,但是我认为我应该给自己的出处命名:

http://bixsolutions.net/forum/thread-8.html

http://coolestguyplanettech.com/downtown/install-and-configure-apache-mysql-php-and-phpmyadmin-osx-108-mountain-lion

Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock) in


2
投票

带有5.12和5.16的信息已显示。要修复,请升级CPAN并重新安装模块:


0
投票

升级到OS X 10.9时,我具有一个现有的MySQL配置,带有一个自定义端口(我使用Boxen)。到目前为止,对我来说,最简单的方法是source installation

# extract the archive, etc.    
perl Makefile.PL --testuser=myuser --testpassword=pass --testport=13306
make
make test
# if all went well with the test
make install

0
投票

我在Mavericks操作系统上也遇到了这个问题。对我有用的解决方案是我在网上看到的一些东西的混合体:


0
投票

Mavericks将安装Perl 5.16,但不会删除以前的5.12二进制文件。另外,我还安装了一些其他软件,该软件在/opt/local/bin下保留了Perl 5.12的另一个副本(我认为是MacPorts,我可能用它来安装cpan),并且该目录在我的bash配置文件中列出。


0
投票

对我来说,我最终完全卸载了MySql并安装了一个旧的32位版本,如下面的stackoverflow页所述:MySQL pid ended (cannot start mysql)


0
投票

我在High Sierra下遇到了几个月的问题,试图让DBI :: mysql无法正常工作。我在此链接找到了解决方案:

© www.soinside.com 2019 - 2024. All rights reserved.