我正在开发一个Perl6项目,但在连接MySQL时遇到了困难。即使使用DBIish(或perl6.org教程)的示例代码,连接也会失败。如果有建议或意见,将不胜感激!用户凭据已确认准确。
我在Windows 10上运行此项目,并使用带有Rakudo Star的标准Perl6和MySQL Server 8.0。我尝试过多种方式修改连接字符串,例如:$password :password<> :password()等,但无法建立连接。还应注意,我已安装ODBC、C、C++和.Net连接器。
我在Windows 10上运行此项目,并使用带有Rakudo Star的标准Perl6和MySQL Server 8.0。我尝试过多种方式修改连接字符串,例如:$password :password<> :password()等,但无法建立连接。还应注意,我已安装ODBC、C、C++和.Net连接器。
#!/usr/bin/perl6
use v6.c;
use lib 'lib';
use DBIish;
use Register::User;
# Windows support
%*ENV<DBIISH_MYSQL_LIB> = "C:/Program Files/MySQL/MySQL Server 8.0/liblibmysql.dll"
if $*DISTRO.is-win;
my $dbh = DBIish.connect('mysql', :host<localhost>, :port(3306), :database<dbNameHere>, :user<usernameHere>, :password<pwdIsHere>) or die "couldn't connect to database";
my $sth = $dbh.prepare(q:to/STATEMENT/);
SELECT *
FROM users
STATEMENT
$sth.execute();
my @rows = $sth.allrows();
for @rows { .print }
say @rows.elems;
$sth.finish;
$dbh.dispose;
这应该是连接到数据库。然后应用程序运行查询,接着打印每个结果行。但实际发生的是每次应用程序都会遇到“die”消息。
%*ENV<DBIISH_MYSQL_LIB>
被设置得太晚了?尝试BEGIN %*ENV<DBIISH_MYSQL_LIB> = "C:/Program Files/MySQL/MySQL Server 8.0/liblibmysql.dll" if $*DISTRO.is-win;
。 - mscha