Я создал пользователя dashboard
и предоставил ему различные привилегии (например, SHOW DATABASES
). Первоначально я установил Host = [частный ip веб-сервера], но продолжал получать ошибки об отказе в доступе, полученные от php mysql_connect
, поэтому я установил Host=192.168.%
, чтобы любой компьютер в нашей сети мог получить к нему доступ.
Я могу успешно подключиться к mysql Db на сервере Db с моего Mac с помощью MySQLWorkbench (и успешно запустил SHOW DATABASES;
), но когда я просто пытаюсь подключиться через php на нашем веб-сервере, я просто получаю: Access denied for user 'dashboard'@'192.168.xx.xx' (using password: YES)
код, который я использую в php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<?php
$dbhost = "192.168.x.x"; // but no x's
$dbuser = "dashboard";
$dbpass = "password"; // i copied&pasted the real password for other successful logins
$dbconnect = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());
$query = mysql_query('SHOW DATABASES;');
?>
</head>
<body>
<? echo $query ?>
</body>
</html>
Полусвязанное примечание: Можно ли каким-то образом установить $dbpass
равным зашифрованной строке, чтобы она не сохранялась в виде простого текста?
РЕДАКТИРОВАТЬ : пользователь mysql в настоящее время dashboard@192.168.%
(не localhost)
EDIT 2 : Я думал, что поскольку веб-сервер находится в демилитаризованной зоне, он может обмениваться данными с MySQL с его общедоступного IP-адреса, но когда я изменяю хост dashboard
на него, я получаю Host '192.168.xx.xx' is not allowed to connect to this MySQL server
. Так что, похоже, дело не в этом ...