我不知道 why,在 Mac 安装 DBI::mysql 总会报错

我为了给 cgi-bin 添加 mysql-perl 数据库支持,也是够麻烦的

  1. make sure that mysql and mydql_config is in your PATH

也就是命令行 which mysqlwhich mysql_config 都可以得到路径

  1. edit mysql_config

sudo vi $(which mysql_config) 要修改几个地方,确保几处环境设置正确

  • line95: pkgincludedir='/Applications/XAMPP/xamppfiles/include'
  • line113: include="$include -I/usr/include/php/ext/mysqlnd"
  1. install DBD::mysql using XAMPP cpan

sudo /Applications/XAMPP/xamppfiles/bin/cpaninstall DBD::mysql

  1. test if success install

/Applications/XAMPP/xamppfiles/bin/perl -MDBD::mysql -e1

如果没有输出表示成功了


第一个依赖错误

Can't load '/Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
  Reason: image not found at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 194.
 at -e line 0.
Compilation failed in require.
BEGIN failed--compilation aborted.

  1. locate libmysqlclient

/Applications/XAMPP/xamppfiles/lib/libmysqlclient.18.dylib

/Applications/XAMPP/xamppfiles/lib/libmysqlclient.a

/Applications/XAMPP/xamppfiles/lib/libmysqlclient.dylib

/Applications/XAMPP/xamppfiles/lib/libmysqlclient_r.18.dylib

/Applications/XAMPP/xamppfiles/lib/libmysqlclient_r.a

/Applications/XAMPP/xamppfiles/lib/libmysqlclient_r.dylib

  1. build linkage

    sudo ln -s /Applications/XAMPP/xamppfiles/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

    sudo ln -s /Applications/XAMPP/xamppfiles/lib/libmysqlclient.a /usr/lib/libmysqlclient.a

  2. check again

    /Applications/XAMPP/xamppfiles/bin/perl -MDBD::mysql -e1

  3. test online

  1 #!/usr/bin/perl
  2 
  3 use utf8;
  4 use v5.16;
  5 use warnings;
  6 use DBI;
  7 print "Content-type: text/plain; charset=utf-8\n\n";
  8 print "$_\n" for (DBI->available_drivers);
  9 # mysql SQLite File DBM are supported
 10 print "----------\nInstalled\n\n";
 11 my %ins = DBI->installed_drivers();
 12 print "$_\t$ins{$_}\n" foreach (sort keys %ins);
 13 
 14 my $mydbh = DBI->connect('DBI:mysql:test;host=localhost','root','imac@mysql') or die "connect failed";
 15 my $sth = $mydbh->prepare("select * from test;");
 16 $sth->execute();
 17 #$result = $sth->fetchrow_hashref();
 18 while( $result = $sth->fetchrow_hashref ){
 19         for (keys $result){
 20         print "$_\t$result->{$_}\n";
 21 }}
 22 $mydbh->disconnect();

how to make CGI-Perl to work with Apache

• edit /Applications/XAMPP/xamppfiles/etc/httpd.conf
375 <Directory "/Applications/XAMPP/xamppfiles/cgi-bin">
376     AllowOverride all
377     Options ExecCGI Includes Indexes
378     # +/- no need
379     #AddHandler cgi-script .cgi .pl .py .sh
380     Order deny,allow
381     Allow from all
382     Require all granted
383     # allow and require are must
384 </Directory>
- 419     AddHandler cgi-script .cgi .pl .py .sh
- sudo chmod -R 0755 /Applications/XAMPP/xamppfiles/cgi-bin
- restart apache

Install DBD::mysql for Perl in XAMPP in Mac , solving errors的更多相关文章

  1. Install MongoDB driver for PHP on XAMPP for Mac OSX

    试了不少方法,最后还是这个最有效. [转自:http://thatsimplecode.com/install-mongodb-driver-for-php-on-xampp-for-mac-osx] ...

  2. centos perl: symbol lookup error: /usr/local/lib64/perl5/auto/DBD/mysql/mysql.so: undefined symbol: mysql_init

    之前在安装天兔数据库监控工具lepus的时候,运行时一直报perl: symbol lookup error: /usr/local/lib64/perl5/auto/DBD/mysql/mysql. ...

  3. XAMPP Apache + MySQL + PHP + Perl

    XAMPP Apache + MySQL + PHP + Perl 什么是XAMPP? XAMPP是最流行的PHP开发环境 XAMPP是完全免费且易于安装的Apache发行版,其中包含MySQL.PH ...

  4. percona innobackupex 遇到 connect to MySQL server as DBD::mysql module is not installed 问题

    percona innobackupex connect to MySQL server as DBD::mysql module is not installed [root@mysql softw ...

  5. MySQL MHA /usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln301] install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted

    在公司随便找3台测试机搭个MHA,下面这个问题折腾了三天,之前没遇到过,查了OS版本发现一致,可能是不同人弄的OS吧,知道是cpan的问题就是搞不定,郁闷...[root@test247 ~]# ma ...

  6. Failed to connect to MySQL server as DBD::mysql module is not installed 问题的解决

    部署PXC ,卸了旧的MySQL perl-DBD-MySQL-4.013-3.el6.x86_64 这个包已经安装了,innobackup时一直在报错: Failed to connect to M ...

  7. 如何处理错误消息Please install the gcc make perl packages

    如何处理这行错误消息? Please install the gcc make perl packages from your distribution. 执行命令行:yum install gcc ...

  8. 【错误】:MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

    错误:MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决 ...

  9. 【mysql报错】MySQL host is blocked because of many connection errors; 解决方法

    MySQL host is blocked because of many connection errors; 报错 环境 操作系统:Linux 数据库:mysql5.7.27 错误提示 jHost ...

随机推荐

  1. applicationContext.xml文件放置位置不同而导致的jUnit测试的时候路径的不同

    如果applicationContext.xml文件放置在src下面的的时候使用jUint测试的时候编写的路径应该是这样的: @Test public void testFindByPage() { ...

  2. 第六篇 Integration Services:初级工作流管理

    本篇文章是Integration Services系列的第六篇,详细内容请参考原文. 简介在前几篇文章中,我们关注使用增量加载方式加载数据.在本篇文章,我们将关注使用优先约束管理SSIS控制流中的工作 ...

  3. 学习RFS,所有文章的参考

    所有文章的主要参考: CSDN博客:http://blog.csdn.net/tulituqi 微博:@齐涛-道长

  4. javascript设计模式学习之十五——装饰者模式

    一.装饰者模式定义 装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象.这种为对象动态添加职责的方式就称为装饰者模式.装饰者对象和它所装饰的对象拥有一致的接口,对于用 ...

  5. ARC机制集合内存管理

    // //  main.m //  13-ARC机制集合内存管理 // //  Created by apple on 14-3-21. //  Copyright (c) 2014年 apple. ...

  6. PLSQL 的简单命令之五

    --1. 查询和Zlotkey相同部门的员工姓名和雇用日期 select a.last_name,a.hire_date ,b.department_name from employees a,dep ...

  7. Mac 加密软件

    1,花了127块买一个mac 加密软件 hider2,发现他只是把整个文件加密后,加入到某个包里面,然后删除了原文件,这个简单的功能竟然要收取我这么多钱 2. 然后找个开源的加密软件:PGP, 有GU ...

  8. mysql-proxy之奇虎360 Atlas 安装实现mysql读写分离

    官方git https://github.com/Qihoo360/Atlas 参照:http://blog.qixingzhong.com/2013/09/centos-install-atlas. ...

  9. PostgreSQL Replication之第十章 配置Slony(2)

    10.2 理解 Slony如何工作 在我们开始复制我们的第一个数据库之前,我们想深入Slony的架构.理解这是如何工作的是非常重要的,否则,将不可能以一种有用的和合理的方法使用这个软件.与事务日志流不 ...

  10. TTabControl、TMemo组件(制作一个简单的多文本编辑框)

    TTabControl包含一列字符串标签的tabs 每个标签控制一个对象 首先创建一个TForm;接下来添加TTabControl组件和一个文件对话框TOpenDialog(用于添加文件),然后在TT ...