Я запускаю локальную копию WordPress на XAMPP / WinXP для разработки, но хотел бы сохранить соединение с удаленной базой данных. Я продолжаю получать сообщение «Ошибка при установлении соединения с базой данных», независимо от того, что я пытаюсь.
На том же ПК я могу подключиться к удаленной БД mySQL, используя любое количество клиентов mySQL, а на стороне mySQL и пользователь, и база данных настроены на прием входящих запросов от любого домена с подстановочными знаками. Я также могу легко пропинговать удаленный сервер базы данных со своего ПК (хотя я не знаю, как это сделать из WITHIN XAMPP).
Является ли XAMPP своей собственной маленькой вселенной, которая не может проникнуть во внешний мир? Или я что-то упускаю из виду, что не позволяет мне подключиться?
Ошибка
Warning: mysql_connect() [function.mysql-connect]: Premature end of data (mysqlnd_wireprotocol.c:553) in C:\xampp\htdocs\dbtest.php on line 5
Warning: mysql_connect() [function.mysql-connect]: OK packet 1 bytes shorter than expected in C:\xampp\htdocs\dbtest.php on line 5
Warning: mysql_connect() [function.mysql-connect]: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication
Редактировать
Спасибо @Michael за предложение, что я просто создаю простой скрипт подключения, чтобы я мог лучше понять фактическую ошибку, которая выдается. Это показало, что это связано с настройкой old_password в mySQL. См. Мой ответ ниже для полного описания того, как решить эту проблему.
Вот тестовый скрипт, который я положил в папку xampp\htdocs
и протестировал:
<?php
$mysqli = new mysqli('my.server.address', 'user_name', 'password', 'database_name');
if ($mysqli->connect_error){
die ("Connect error: " . $mysqli->connect_error );
}