Я пытаюсь подключиться к моей базе данных MySQL на своем онлайн-сервере через PHP на моем localhost.
$con = mysql_connect("$hostname", "$username", "$password"); if (!$con) {die('Could not connect: ' . mysql_error());} mysql_select_db($databasename, $con);
Когда я загружаю сценарий на сервер, он прекрасно подключается к базе данных. Однако, когда я загружаю скрипт на свой localhost, он не будет подключаться к онлайн-базе данных. Я отключил свой брандмауэр, чтобы убедиться, что он не блокирует его.
Правильно ли это соединение правильно отформатировано? Любые другие предложения?
Ваш сервер MySQL должен иметь ваш IP-адрес (или %
как wild card), указанный в разрешенных хостах.
Разрешает ли это хост? Многие не позволят внешним клиентам подключаться.
Как говорят другие, вы должны разрешить подключение этого конкретного хоста (в данном случае к вашему IP). Это находится в вашей таблице user
в базе данных mysql
. Если у вас нет доступа к этой базе данных (или у вас нет привилегий), вы не можете это изменить.
Ваш код в порядке.
Как утверждали другие, сервер MySQL должен разрешать подключения с удаленных компьютеров. Также убедитесь, что брандмауэр вашего провайдера не блокирует запрос и дважды проверяет имя хоста, поскольку он может отличаться от того, который вы используете на своем сервере.
Если вы не настроили свой сервер самостоятельно, вам, вероятно, придется говорить с поддержкой пользователя вашего хостера, потому что у них есть разрешения на изменение настроек и более точную информацию по этой теме.
Пришло время перейти к mysqli_*
или PDO
Документация