如何在Perl中使用嵌入式MySQL?

时间:2014-11-15 21:01:07

标签: mysql perl dbi

我使用--force-embedded标志安装了DBD::mysql模块并尝试了此

use warnings;
use strict;

use DBD::mysql;

my $dsn = "DBI:mysqlEmb:database=test;mysql_embedded_options=--help,--verbose";
my $dbh = DBI->connect($dsn, 'root', '');

if ($dbh) {
    print "connect\n";
}
else {
    print "not connect\n";
}

但它会抛出此错误

  

install_driver(mysqlEmb)失败:无法在@INC中找到DBD / mysqlEmb.pm   (你可能需要安装DBD :: mysqlEmb模块)(@INC包含:   C:/ Strawberry / perl / site / lib C:/ Strawberry / perl / vendor / lib   C:/ Strawberry / perl / lib。)at(eval 5)第3行。

     

也许DBD :: mysqlEmb perl模块还没有完全安装,或者   也许是'mysqlEmb'的大写。不对。可得到   驱动程序:ADO,CSV,DBM,ExampleP,文件,Gofer,ODBC,Oracle,Pg,代理   ,SQLite,Sponge,mysql。在mysqlemb_test_2.pl第6行。

我做错了什么?

安装日志

perl Makefile.PL --force-embedded

  

mysql_config.pl和相关的bat文件已经存在   成功创建了      C:\ MYSQL-〜1.21- \ bin中

     

找不到文件' mysql_config'!您的执行路径似乎并非如此   不包含mysql_config的路径。诉诸于猜测的价值观!

     

请注意:

     

进行测试'要正常运行,你必须确保   数据库用户''可以连接到您的MySQL服务器   并具有这些测试所需的适当权限   作为' drop table','创建表',' drop procedure','创建程序'   以及其他人。

     

的MySQL>授予测试的所有权限。*到'' @' localhost'由' s3kr1t';

标识      

您还可以选择将用户设置为运行' make test'用:

     

perl Makefile.PL --testuser = username

     

我将使用以下设置进行编译和测试:

     

cflags(mysql_config)= -IC:\ strawberry \ c \ bin .. \ include \ mysql_5     嵌入(猜测)=     强制嵌入(用户选择)= 1     ldflags(mysql_config)=     libs(mysql_config)= -LC:\ strawberry \ c \ bin .. \ lib -lmysql     mysql_config(猜到了)= mysql_config     nocatchstderr(默认)= 0     nofoundrows(默认)= 0     ssl(猜测)= 0     testdb(默认)= test     testhost(默认)=     testpassword(默认)=     testport(默认)=     testsocket(默认)=     testuser(猜测)=

     

要更改这些设置,请参阅&per; Makefile.PL - help'和   ' perldoc DBD :: mysql :: INSTALL'。

     

检查您的套件是否完整......   看起来不错   使用安装在C:/ strawberry / perl / site / lib / auto / DBI /中的DBI 1.631(对于MSWin32-x86-multi-thread上的perl 5.016003)   为DBD :: mysql编写Makefile   写MYMETA.yml和MYMETA.json

dmake

  

cp lib / DBD / mysql.pm blib \ lib \ DBD \ mysql.pm   cp lib / DBD / mysql / GetInfo.pm blib \ lib \ DBD \ mysql \ GetInfo.pm   cp README.pod blib \ lib \ DBD \ README.pod   cp lib / DBD / mysql / INSTALL.pod blib \ lib \ DBD \ mysql \ INSTALL.pod   cp lib / Bundle / DBD / mysql.pm blib \ lib \ Bundle \ DBD \ mysql.pm   gcc -c -IC:\ strawberry \ perl \ site \ lib \ auto \ DBI -IC:\ strawberry \ c \ bin .. \ include \ mysql_5 -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS - fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION = \" 4.028 \" -DXS_VERSION = \" 4.028 \" " -IC:\草莓\ perl的\ lib中\ CORE" dbdimp.c   C:\ strawberry \ perl \ bin \ perl.exe -p -e" s / ~DRIVER~ / mysql / g" C:\ strawberry \ perl \ site \ lib \ auto \ DBI \ Driver.xst> mysql.xsi   C:\ strawberry \ perl \ bin \ perl.exe C:\ strawberry \ perl \ lib \ ExtUtils \ xsubpp -typemap C:\ strawberry \ perl \ lib \ ExtUtils \ typemap mysql.xs> mysql.xsc&& C:\ strawberry \ perl \ bin \ perl.exe -MExtUtils :: Command -e mv - mysql.xsc mysql.c   gcc -c -IC:\ strawberry \ perl \ site \ lib \ auto \ DBI -IC:\ strawberry \ c \ bin .. \ include \ mysql_5 -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS - fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION = \" 4.028 \" -DXS_VERSION = \" 4.028 \" " -IC:\草莓\ perl的\ lib中\ CORE" mysql.c   为DBD :: mysql()运行Mkbootstrap   C:\ strawberry \ perl \ bin \ perl.exe -MExtUtils :: Command -e chmod - 644 mysql.bs   C:\ strawberry \ perl \ bin \ perl.exe -MExtUtils :: Mksymlists \        -e" Mksymlists(' NAME' => \" DBD :: mysql \",' DLBASE' =>' mysql& #39;,' DL_FUNCS' => {},' FUNCLIST' => [],' IMPORTS' => {},' DL_VARS' => []);"   dlltool --def mysql.def --output-exp dll.exp   C:\ strawberry \ perl \ bin \ perl.exe myld g ++ -o blib \ arch \ auto \ DBD \ mysql \ mysql.dll -Wl, - base-file -Wl,dll.base -mdll -s -L&# 34; C:\草莓\ perl的\ lib中\ CORE" -L" C:\草莓\ C \ lib中" dbdimp.o mysql.o C:\ strawberry \ perl \ lib \ CORE \ libperl516.a C:\ strawberry \ c \ bin .. \ lib \ libmysql.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libmoldname.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libkernel32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libuser32.a C:\ strawberry \ c \ i686-w64 -mingw32 \ lib \ libgdi32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libwinspool.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libcomdlg32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libadvapi32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libshel​​l32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libole32.a C: \ strawberry \ c \ i686-w64-mingw32 \ lib \ liboleaut32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libnetapi32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libuuid .a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libws2_32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libmpr.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libwinmm.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libversion.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libodbc32.a C:\ strawberry \ c \ i686 -w64-mingw32 \ lib \ libodbccp32.a C:\ stra wberry \ c \ i686-w64-mingw32 \ lib \ libcomctl32.a dll.exp   dlltool --def mysql.def --base-file dll.base --output-exp dll.exp   C:\ strawberry \ perl \ bin \ perl.exe myld g ++ -o blib \ arch \ auto \ DBD \ mysql \ mysql.dll -mdll -s -L" C:\ strawberry \ perl \ lib \ CORE&#34 ; -L" C:\草莓\ C \ lib中" dbdimp.o mysql.o C:\ strawberry \ perl \ lib \ CORE \ libperl516.a C:\ strawberry \ c \ bin .. \ lib \ libmysql.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libmoldname.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libkernel32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libuser32.a C:\ strawberry \ c \ i686-w64 -mingw32 \ lib \ libgdi32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libwinspool.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libcomdlg32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libadvapi32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libshel​​l32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libole32.a C: \ strawberry \ c \ i686-w64-mingw32 \ lib \ liboleaut32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libnetapi32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libuuid .a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libws2_32.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libmpr.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libwinmm.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libversion.a C:\ strawberry \ c \ i686-w64-mingw32 \ lib \ libodbc32.a C:\ strawberry \ c \ i686 -w64-mingw32 \ lib \ libodbccp32.a C:\ strawbe rry \ c \ i686-w64-mingw32 \ lib \ libcomctl32.a dll.exp   C:\ strawberry \ perl \ bin \ perl.exe -MExtUtils :: Command -e chmod - 755 blib \ arch \ auto \ DBD \ mysql \ mysql.dll   C:\ strawberry \ perl \ bin \ perl.exe -MExtUtils :: Command -e cp - mysql.bs blib \ arch \ auto \ DBD \ mysql \ mysql.bs   C:\ strawberry \ perl \ bin \ perl.exe -MExtUtils :: Command -e chmod - 644 blib \ arch \ auto \ DBD \ mysql \ mysql.bs

dmake test

  

C:\ strawberry \ perl \ bin \ perl.exe" -MExtUtils :: Command :: MM" " -e" " test_harness(0,' blib \ lib',' blib \ arch')"吨/ *。吨   t / 00base.t ............................好的   t / 10connect.t ........................好的   t / 15reconnect.t ......................好的   t / 20createdrop.t ..................... ok   t / 25lockunlock.t ..................... ok   t / 29warnings.t ........................好的   t / 30insertfetch.t ....................好的   t / 31insertid.t ........................好的   t / 32insert_error.t ....................好的   t / 35limit.t ..........................好的   t / 35prepare.t ........................好的   t / 40bindparam.t ......................好的   t / 40bindparam2.t ..................... ok   t / 40blobs.t ..........................好的   t / 40catalog.t ........................好的   t / 40keyinfo.t ........................好的   t / 40listfields.t .....................好的   t / 40nulls.t ..........................好的   t / 40nulls_prepare.t ..................好的   t / 40numrows.t ........................好的   t / 40server_prepare.t .................好的   t / 40server_prepare_error.t ............好的   t / 40types.t ..........................好的   t / 41bindparam.t ......................好的   t / 41blobs_prepare.t ..................好的   t / 42bindparam.t ......................好的   t / 43count_params.t ...................好的   t / 50chopblanks.t ..................... ok   t / 50commit.t ......................... ok   t / 51bind_type_guessing.t .............好的   t / 52comment.t ........................好的   t / 53comment.t ........................好的   t / 55utf8.t ............................好的   t / 60leaks.t ..........................跳过:跳过$ ENV {EXTENDED_TESTING}未设置   t / 65segfault.t ........................好的   t / 65types.t ..........................好的   t / 70takeimp.t ........................好的   t / 71impdata.t ........................好的   t / 75supported_sql.t ..................好的   t / 76multi_statement.t ................好的   t / 80procs.t ..........................跳过:您的测试用户没有ALTER_ROUTINE权限。   t / 81procs.t ..........................跳过:您的测试用户没有ALTER_ROUTINE权限。   t / 85init_command.t ....................好的   t / 86_bug_36972.t ..................... ok   t / 87async.t ..........................跳过:这个版本的DBD :: mysql没有内置异步支持   t / 88async-multi-stmts.t ..............跳过:此版本的DBD :: mysql中没有内置异步支持(模式为0,10021)   t / 89async-method-check.t .............跳过:这个版本的DBD :: mysql没有内置异步支持   t / 90no-async.t ........................好的   t / 91errcheck.t ........................好的   t / 99_bug_server_prepare_blob_null.t ..好的   t / manifest.t .........................跳过:这些测试用于发布测试   t / pod.t ..............................跳过:测试POD需要测试:: Pod 1.00   t / rt25389-bin-case.t ................. ok   t / rt50304-column_info_parentheses.t ..好的   t / rt83494-quotes-comments.t ..........好的   t / rt85919-fetch-lost-connection.t ....好的   t / rt86153-reconnect-fail-memory.t ....跳过:跳过$ ENV {EXTENDED_TESTING}未设置   t / rt91715.t ..........................好的   所有测试都成功。   Files = 58,Tests = 940,30 wallclock secs(0.03 usr + 0.35 sys = 0.38 CPU)   结果:通过

dmake install

  

在blib \ arch中找到的文件:将blib \ lib中的文件安装到与体系结构相关的库树中   安装C:\ strawberry \ perl \ site \ lib \ auto \ DBD \ mysql \ mysql.bs   安装C:\ strawberry \ perl \ site \ lib \ auto \ DBD \ mysql \ mysql.dll   安装C:\ strawberry \ perl \ site \ lib \ Bundle \ DBD \ mysql.pm   安装C:\ strawberry \ perl \ site \ lib \ DBD \ mysql.pm   安装C:\ strawberry \ perl \ site \ lib \ DBD \ README.pod   安装C:\ strawberry \ perl \ site \ lib \ DBD \ mysql \ GetInfo.pm   安装C:\ strawberry \ perl \ site \ lib \ DBD \ mysql \ INSTALL.pod   将安装信息附加到C:\ strawberry \ perl \ lib / perllocal.pod

0 个答案:

没有答案