Я озадачен тем, что это так сложно.
(1) При активации состояния perl v5.26.3 я использую ppm.bat, а поиск mysql и DBD-mysql отсутствует. Согласно https://code.activestate.com/ppm/DBD-mysql/ я пытаюсь
ppm install DBD-mysql
Я получил:
ppm install failed: Can't find any package that provides DBD-mysql
(2) С тем же ppm.bat perl активного состояния я вижу mysqlPP, и это также не работает с MySQL V8:
perl -MDBI -e '$cat=$ENV{"MYSQLDATABASECATALOG"}; $svr=$ENV{"MYSQLHOST"}; $user=$ENV{"DATABASEUSER"}; $pass=$ENV{"DATABASECATALOGPASSWORD"}; my $dbh=DBI->connect("dbi:mysqlPP:database=$cat;host=$svr",$user,$pass,{ RaiseError => 1 }) or die "Cannot connect to $data_source: $DBI::errstr"; my $q=$ARGV[0]; my $sth=$dbh->prepare($q) or die "Cannot prepare statement: $DBI::errstr"; $sth->execute(); ... $sth->finish(); $dbh->disconnect;' "<query goes here>"
DBI connect('database=sqlpocket;host=localhost','sqlpocket',...) failed: #08004Client does not support authentication protocol requested by server; consider upgrading MySQL client at C:/Perl64/site/lib/DBD/mysqlPP.pm line 116.
(3) Предполагается, что в Strawberry perl уже установлен DBD для mysql, и это тоже не работает:
perl -MDBI -e '$cat=$ENV{"MYSQLDATABASECATALOG"}; $svr=$ENV{"MYSQLHOST"}; $user=$ENV{"DATABASEUSER"}; $pass=$ENV{"DATABASECATALOGPASSWORD"}; my $dbh=DBI->connect("dbi:mysql:dbname=$cat",$user,$pass,{ RaiseError => 1 }) or die "Cannot connect to $data_source: $DBI::errstr"; my $q=$ARGV[0]; my $sth=$dbh->prepare($q) or die "Cannot prepare statement: $DBI::errstr"; $sth->execute(); ... $sth->finish(); $dbh->disconnect;' "<sql query goes here>"
я получил
install_driver(mysql) failed: Can't load 'C:/perlstrawberry/5.30.0.1/perl/vendor/lib/auto/DBD/mysql/mysql.xs.dll' for module DBD::mysql: load_file:The specified module could not be found at C:/Users/2207458/Documents/AppBin/perlstrawberry/5.30.0.1/perl/lib/DynaLoader.pm line 193.
Perhaps a required shared library or dll isn't installed where expected.
Это странно, потому что «C:/perlstrawberry/5.30.0.1/perl/vendor/lib/auto/DBD/mysql/mysql.xs.dll» существует и доступен.
Обновление от 30 августа 2019 г.:
Извините, я пытался быть менее многословным и поступил небрежно: я удалил «Users/2207458/Documents/AppBin» из вышеуказанного имени файла (но я не был последователен). Итак, C:/perlstrawberry/5.30.0.1/perl/vendor/lib/auto/DBD/mysql/mysql.xs.dll на самом деле был c:/Users/2207458/Documents/AppBin/perlstrawberry/5.30.0.1/perl/vendor/ lib/авто/DBD/mysql/mysql.xs.dll.
PERL5LIB никогда не был определен. Это должно быть?
PERL5LIB
указывает на правильные пути. Ты сделал это? - person Holli   schedule 29.08.2019C:/perlstrawberry/5.30.0.1/...
, но код, который это делает, находится вC:/Users/2207458/Documents/AppBin/perlstrawberry/5.30.0.1
. Это кажется очень подозрительным. - person Holli   schedule 30.08.2019