Perl DBD-mysql モジュールを使用してリモート MySQL サーバーに接続しようとしています。クライアントは Windows の下にあるため、Perl に接続する前に、Windos コマンドラインでいくつかのテストを行いました。
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)
ヒントを教えてください。