Я пытаюсь подключить один удаленный сервер, где я установил MySQL, но он принимает локальный удаленный сервер localhost, на котором установлен mySQL: 131.116.220.228 Удаленный сервер, с которого необходимо подключить db: 131.116.220.220 ('ov046hanpgate01.ddc.teliasonera.net ")
use DBI;
print "Testing 1\n";
$DSN="DATABASE=MySQL80;port=3306;host=131.116.220.228";
print "Testing 2\n";
my $dbh = DBI->connect("dbi:mysql:$DSN", "ShrutiTest", "Shruti@92", {PrintError => 0})
or die "Couldn't connect to database: " . DBI->errstr;
print "Testing 3\n";
$dbh->disconnect;
Ошибка: Не удалось подключиться к базе данных: Host 'ov046hanpgate01.ddc.teliasonera.net' не разрешено подключаться к этому серверу MySQL в D:\Integrations\OWF\Scripts\test27july.pl строке 6.
Похоже, вам нужно разрешить пользователю ShrutiTest подключаться из ip, где вы используете скрипт, а именно: 131.116.220.220
Это можно сделать на сервере MySQL любым администратором:
GRANT ALL PRIVILEGES ON *.* TO 'ShrutiTest'@'131.116.220.220'
Решила то же самое. Используемый код:
#!/usr/bin/perl -w
use DBI;
## mysql user database name
$db ="Buffering";
## mysql database user name
$user = "ShrutiBuffer";
## mysql database password
$pass = "Shruti1234";
## user hostname : This should be "localhost" but it can be diffrent too
$host="131.116.220.228";
$port="3306";
## SQL query
$query = "select * from buffering.insert_data";
my $dbh = DBI->connect("DBI:mysql:database=$db;host=$host;port=$port",$user, $pass);
$sqlQuery = $dbh->prepare($query)
or die "Can't prepare $query: $dbh->errstr\n";
$sqlQuery->execute
or die "can't execute the query: $sqlQuery->errstr";
print "values are:: ";
while (@row= $sqlQuery->fetchrow_array()) {
print join(", ", @row), "\n";
}
$sqlQuery->finish;
exit(0);
@
.root@localhost
! =root@%