Я пишу сценарий 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 с удаленного сервера?
Это должно работать:
$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;
Других решений пока нет …