我尝试使用 Perl DBD-mysql 模块连接到远程 MySQL 服务器。客户端在Windows下,所以在连接Perl之前,我用Windos cmd line做了一些测试:
mysql -h xx.xx.xx.xx -u root -p database -P 3306
它回来了ERROR 1045 (28000): Access denied for user 'root'@'my-pc-name'
。我在互联网上做了一些研究,发现grant all privileges on *.* to root@"%" identified by "password"
在服务器端运行可以解决这个问题。然后我成功连接到服务器。
但是,使用 Perl DBD-mysql 模块连接时仍然存在这样的访问问题。这是我的代码:
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect('DBI:mysql:database@xx.xx.xx.xx', 'root', 'password'
) || die "Could not connect to database: $DBI::errstr";
据报道:
DBI connect('database@xx.xx.xx.xx','root',...) failed: Access denied for user 'root'@'localhost' (using password: YES)
你能给一些提示吗?