我不知道 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. day03-java

    day03 大纲: 运算符 分支结构 1.运算符:  1)算术运算符:+-*/%,++,--  2)关系运算符:>,<,>=,<=,==,!= boolean  3)逻辑运算符 ...

  2. toggle笔记

    <!DOCTYPE html> <!-- saved from url=(0040)http://v3.bootcss.com/examples/carousel/ --> & ...

  3. linux安装MySQL5.7.13(二进制|源码)

    二进制和源码版本安装MySQL5.7.13,并简单介绍不同之处. 一.通用二进制部分 1.下载MySQL通用二进制软件包.[root@node1 ~]# wget http://120.52.72.2 ...

  4. HtmlAgilityPack教程

    解析html教程(重点) http://www.cnblogs.com/kissdodog/archive/2013/02/28/2936950.html 完整的教程 http://www.cnblo ...

  5. postgresql 死锁处理

    缘起 遇到一个奇怪的现象,select和delete表时正常执行,但truncate和drop表时会一直运行,也不报错. 原因 "drop table " 和 "trun ...

  6. 什么是JDK,JRE

    JDK 是Java开发工具包 (Java Development Kit ) 的缩写.它是一种用于构建在 Java 平台上发布的应用程序.applet 和组件的开发环境.其中包括了Java编译器.JV ...

  7. pptp建立vpn

    1. 安装依赖 ppp yum -y install ppp 2. 编译安装pptpd wget http://jaist.dl.sourceforge.net/project/poptop/pptp ...

  8. UILabel详解

    // ----------------------UILabel--------------------------- UILabel *label = [[UILabel alloc] initWi ...

  9. Android中的Handler机制

    直接在UI线程中开启子线程来更新TextView显示的内容,运行程序我们会发现,如下错 误:android.view.ViewRoot$CalledFromWrongThreadException: ...

  10. Mysql note

    from w3cschool.com 1,modify the segment of table alter table table_name add/drop var_name [var_type] ...