Perl / MySQL «Хост не разрешен» и «сбой: клиент не поддерживает протокол аутентификации, запрошенный сервером» ошибки?

Я пишу сценарий Perl, который выполняется с удаленного сервера UNIX. Предполагается, что скрипт подключается к моей локальной машине и отправляет некоторые данные на сервер MySQL, работающий под управлением XAMPP.
Я использовал следующий код для установления соединения:

my $dbHost = "my-machine-name";
my $dbUsername    = "root";
my $dbPassword    = "";
my $databaseName = "myDB";
my $connection = DBI->connect("DBI:mysql:$databaseName;host=$dbHost",
$dbUsername, $dbPassword, { RaiseError => 1 } )
or die ( "Couldn't connect to database: " . DBI->errstr );

Сначала я получал:

Хост … не разрешено подключаться к этому серверу MySQL

Затем я читать что мне нужно добавить отклоненный хост в список пользователей. Поэтому я открыл XAMPP Control, щелкнул XAMPP-> ADMIN, чтобы открыть phpMyAdmin, затем перешел к таблице пользователей, скопировал строку с именем host = 127.0.0.1, а затем изменил 127.0.0.1 на отклоненный IP-адрес, который я получал. Затем я снова открыл XAMPP Control, остановил Apache и MySQL, а затем запустил их.

Теперь я получаю:

DBI connect (‘myDB; host = my-machine-name’, ‘root’, …)
Ошибка: клиент не поддерживает протокол аутентификации, запрошенный
сервер; рассмотреть вопрос об обновлении клиента MySQL на …

Я попытался изменить имя хоста со строкового имени на IPv4-адрес, но все равно получил ту же ошибку. Также попытался добавить :3306 до конца хоста, но получил ту же ошибку.

Любая идея, что я могу сделать, чтобы получить доступ к локальному MySQL с удаленного сервера?

0

Решение

Это должно работать:

$server = 'your server';
$port = '3306';
$user = 'your_user';
$pass = 'your_pass';
$database = 'database';
$dbConn = DBI->connect("DBI:mysql:$database:$server:$port", "$user", "$pass")
or die "Couldn't connect to database: " . DBI->errstr;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]