Низ за връзка с отдалечена база данни

Здравейте, нов съм в 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' (с парола: ДА)“

и ако използвам 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' (използване на парола: ДА)“ намеква за липсващи права за достъп за потребителя 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