Удаленное подключение к mysql
-
21-08-2019 - |
Вопрос
Я создавал веб-сайт на 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
Также помните, что, хотя это решение должно работать, оно не рекомендуется для предоставления все привилегии пользователю, который будет использоваться веб-приложением.Вы можете сделать то же самое с меньшим количеством разрешений.
Вы можете сделать все это с помощью приятного интерфейса с графическим интерфейсом.Я предпочитаю командную строку.