Строка подключения к удаленной базе данных

Привет, я новичок в PHP и MySQL. Я создал приложение на LAMP и загрузил его на сайт net4.com хостинговой компании. Они используют phpMyAdmin для подключения к базе данных, которую я могу успешно решить, проблема возникает, когда я пытаюсь подключиться к базе данных с помощью php и запрашиваю базу данных. Я использую функцию mysql_connect(), которую я успешно использовал на своем локальном компьютере для подключения к удаленной базе данных, т.е.

$link = mysql_connect("118.67.248.12",  "username", "password");

где «118.67.248.12» — это IP-адрес сервера, на котором находится моя база данных, выдает следующую ошибку:

"1045Отказано в доступе для пользователя 'Technosaar'@'118.67.248.190' (используется пароль: YES)"

и если я использую localhost" вместо "118.67.248.12", выдает следующую ошибку:

«2002 Не удалось установить соединение, так как целевая машина отказалась от него».

Я уже запутался, звоня в службу поддержки «net4», ребята, но проблема все еще не устранена. Кто-нибудь, пожалуйста, помогите мне, Первомай, Первомай!


person user1863913    schedule 29.11.2012    source источник
comment
Пожалуйста, если вы все еще находитесь в процессе изучения PHP и MySQL, не утруждайте себя изучением mysql_*, потому что это устарело. Потратьте некоторое время на чтение PDO здесь или, при необходимости, соединение mysqli_*, которое предлагает API, очень похожий на mysql_*   -  person Elias Van Ootegem    schedule 29.11.2012


Ответы (2)


Я предполагаю, что последний (localhost) не работает, потому что веб-сервер и сервер базы данных не работают на одной машине.

Вы уверены, что пароль установлен правильно на сервере? Это выглядит как ошибка аутентификации для меня.

person abegosum    schedule 29.11.2012

"1045 Доступ запрещен для пользователя 'Technosaar'@'118.67.248.190' (используя пароль: YES)" указывает на отсутствие прав доступа для пользователя Technosaar с вашего веб-сервера. Войдите в phpmyadmin и введите команду

show grants;

or

show grants for '<myuser'@'<host>';

Должна быть строка типа

предоставить ‹привилегию› на ‹mydatabase› '‹myuser›'@'‹host›'

Там вы увидите, какие права доступа настроены для вашего пользователя. Если вашего веб-сервера нет в списке, вы должны

grant all privileges on <mydatabase>.* to '<myuser>'@'<host>';

или любые привилегии, которые вам нужны для вашей базы данных.

Конечно, вставьте соответствующее имя базы данных, имя пользователя и хост веб-сервера.

person Olaf Dietsche    schedule 29.11.2012