我使用--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 \ libshell32.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 \ libshell32.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