Този отговор е редактиран няколко пъти въз основа на нова информация, предоставена от ОП
Всъщност root разрешен ли е да се свържете със сървъра от хоста, от който се свързвате? Ако низът за грешка връща каноничното име на сървъра, има много голям шанс „localhost“ да не сочи към 127.0.0.1 :
Това трябва да отразява нещо като „Достъпът е отказан за потребител 'root'@localhost'", а не името на сървъра.
Опитайте:
$con = mysql_connect("127.0.0.1","root","pass");
Редактиране (След повече информация, предоставена в коментарите)
Ако се свързвате от напълно различен хост, трябва да кажете на MySQL [email protected]_hostname_or_ip
има право да се свързва и има подходящи привилегии за създаване на база данни и потребители.
Можете да направите това доста лесно, като използвате phpmyadmin (на MySQL сървъра) или заявка като:
CREATE USER 'root'@'192.168.1.1' IDENTIFIED BY PASSWORD 'secret';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.1.1' IDENTIFIED BY PASSWORD 'secret' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Бих посъветвал да не наричате този потребител 'root', просто създайте потребител с всички необходими глобални привилегии. В примера използвах 192.168.1.1, което лесно може да бъде име на хост, просто се уверете, че DNS е настроен правилно. Посочете хоста, който да съвпада точно както се показва в регистрационните файлове, когато се свържете с отдалечения сървър.
Може също да искате да коригирате границите на вкус. Повече информация за CREATE USER
синтаксисът може да бъде тук
, GRANT
тук
.
Редактиране
Ако използвате MySQL 4 - CREATE не е опция. Просто ще използвате GRANT (4.1 Документи за управление на потребителите )
Редактиране
Ако използвате C-Panel, просто използвайте API . Въпреки че да, той има своите странности, по-лесно е да се поддържат неща, които го използват, а не ad-hoc работни заобикаляния. Много успешни приложения го използват без проблем. Както всеки друг API, трябва да сте в течение на промените, когато го използвате.