私はユーザdashboard
を作成し、それにさまざまな特権を与えました(SHOW DATABASES
など)。私は最初にHost = [WebサーバのプライベートIP]を設定しましたが、PHPのmysql_connect
から返されたアクセス拒否エラーが続いていたので、私たちのネットワーク上の任意のマシンがアクセスできるようにHost=192.168.%
に設定しました。mysqlは「アクセスが拒否されました」(PHP経由で接続する場合のみ)
私は成功しMySQLWorkbenchを使用して私のMacからDBサーバ上のMySQL DBへの接続(および首尾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
を設定することはできますか?
EDIT:MySQLユーザが現在[email protected]%
です(localhostではありません)
EDIT 2は:WebサーバはDMZにあるので、私は、それはパブリックIPだから、それは、MySQLと通信するかもしれないと、思いましたしかし私がdashboard
のホストをそれに変更すると、Host '192.168.xx.xx' is not allowed to connect to this MySQL server
が得られます。だから、それはそれは当てはまらないようだ...
'dashboard @ localhost'に対するユーザアクセスしか定義していないので、' dashboard @ phpcomputer'へのユーザアクセスも許可し、それらのクレデンシャルでログインする必要があります。 – Johan
こんにちは@Johan、あなたの応答のおかげで、いいえ、それはlocalhostに設定されていません。私は最初にユーザを 'dashboard @ webserver'を作成し、' [email protected]。%。% 'に変更しました(私たちのプライベートネットワーク上のマシンはそのユーザとして接続できるはずです)。 – jacob
Check-1.はポートORソケットでリッスンしていますか? 2.私たちにこのユーザーの特権を教えてください。3. 192.168.x.xはローカルネットワークです – ajreal