Вопрос

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

$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: 

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

Это было полезно?

Решение

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

Другие советы

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

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

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

За которым следует:

flush privileges;

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top