Удаленное подключение MySQL - PullRequest
0 голосов
/ 22 марта 2009

Я делал веб на локальном хосте, и когда я пытался переместить его на хост, он показывает много ошибок Похоже, он не может подключиться к моей локальной базе данных. Вот код:

$host = "myip";
$user = "root";
$pass = "";
$db = "mydatabase";

mysql_connect($host, $user, $pass);
mysql_select_db($db);
$on = mysql_fetch_row(mysql_query("SELECT COUNT(online) FROM characters WHERE online=1"));
echo "<br>Online: $on[0]<br><br>";

А вот и вывод:

Warning: mysql_connect() [function.mysql-connect]: Host 'myip' is not allowed to connect to this MySQL server in * on line 46

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in * on line 48

Online: 

Спасибо за помощь

Ответы [ 2 ]

4 голосов
/ 22 марта 2009

Это проблема с правами доступа пользователя mysql. Например, создайте нового пользователя с помощью phpmyadmin и установите для его хоста значение localhost, если вы подключаетесь с localhost, или%, если вы подключаетесь извне.

3 голосов
/ 22 марта 2009

Как правильно сказал Алек, проблема с разрешением:

Вы можете сделать это в командной строке MySQL:

grant all privileges on mydatabase.* 
   to youruser@'your_ip_address' 
   identified by 'your_password';

Вслед за:

flush privileges;

А затем попробуйте снова подключиться. Имейте в виду, что:

your_ip_adress: не IP-адрес сервера MySQL, а IP-адрес, с которого вы подключаетесь (ваш веб-сервер?) your_password: это тот, который вы должны использовать при установлении соединения на стороне PHP

Также помните, что, хотя это решение должно работать, не рекомендуется предоставлять все привилегии пользователю, который будет использоваться веб-приложением. Вы можете сделать то же самое с меньшим количеством разрешений.

Вы можете сделать все это с помощью приятного графического интерфейса. Я предпочитаю командную строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...