拒绝用户访问';根'@';本地主机';(使用密码yes)连接perl和mysql时

拒绝用户访问';根'@';本地主机';(使用密码yes)连接perl和mysql时,mysql,perl,Mysql,Perl,我编写了以下perl脚本来连接mysql workbench数据库,但它给出了一个错误用户'root'@'localhost'的访问被拒绝(使用密码yes) 运行代码后出错: C:\Users\1053130\Desktop>perl mysql.pl DBI connect('database=dvd_collection','root',...) failed: Access denied for user 'root'@'localhost' (using password: YES

我编写了以下perl脚本来连接mysql workbench数据库,但它给出了一个错误
用户'root'@'localhost'的访问被拒绝(使用密码yes)

运行代码后出错:

C:\Users\1053130\Desktop>perl mysql.pl
DBI connect('database=dvd_collection','root',...) failed: Access denied for user 'root'@'localhost' (using password: YES) at mysql.pl line 9.
Access denied for user 'root'@'localhost' (using password: YES) at mysql.pl line 9.
我也问过类似的问题,但根据这些问题,我已经有了
用户名
密码
。我甚至还更改了根密码。但是错误仍然是一样的

代码:

Shouldnt
my$dsn=“DBI:$driver:database=$database”宁愿是
my$dsn=“DBI:$driver:database=$database;host=$hostname;port=$port”

缺少主机和端口

编辑:
它说…的访问被拒绝@本地主机。它是本地服务器吗?如果没有,您应该如上所示声明服务器详细信息

Edit2:
根据你的评论,你应该检查你的密码,尽管听起来很简单。您可以使用mysql-u root-p newPasswordHere来实现它。选择一个新的,然后重试

Edit3:
由于您已经更改了密码,请尝试以下更改您的连接:

my $dbh = DBI->connect('dbi:mysql:dbname=dvd_collection;host=localhost','root', '123') || die "Could not connect to database: $DBI::errstr";
我看到一些ppl在不同的连接格式上有一些问题。

如果错误是“访问被拒绝”,那么密码可能是错误的,在xampp服务器中,sql的dafault密码将是“”。因此,请尝试下面的一行

my $dbh=DBI->connect("DBI:mysql:perldb",'root','') or die;

是的,它是本地服务器。我还试图提供主机/门户的详细信息,但错误仍然是一样的@C4UD3X然后您可能得到了错误的密码,或者您过滤掉了来自本地主机的传入连接。现在,通过编辑您在Edit3中提到的代码,代码可以正常工作。多谢各位@C4ud3x@swapnil90如果解决了问题,您应该接受答案。您在哪个操作系统上工作?您可以使用
mysql
命令行程序使用这些连接详细信息连接到数据库吗?
my $dbh=DBI->connect("DBI:mysql:perldb",'root','') or die;