0

私の Mac には MAMP を使用して MySQL データベースがあります。たとえば184.173.9などのIPを持つリモートサーバーからPHPスクリプトを使用してこのデータベースに接続する必要があります....私はこれを2日間試しましたが、うまくいきませんでした。

いくつかのフォーラムで、skip-networking をコメントアウトし、MAMP の my.cnf ファイルでリモート サーバーの IP で bind-address を使用するように求めたところを試してみました。まず、MAMP で my.cnf ファイルを見つけられませんでしたが、最終的に Library/support-files/my-medium.cnf から見つけました。それをコピーして、tmp/mysql/my.cnf に配置しました。しかし、何も機能しません。

また、システム環境設定/セキュリティとプライバシーでファイアウォールをオフにしました。

接続に使用しているphpコードは次のようになります。

mysql_connect('176.249.200....:3306', 'test', 'test') または die(mysql_error());

他に何が欠けているか教えてください。

4

3 に答える 3

0

出力は次のとおりです。

にすべての権限を付与します。TO 'test'@'%' IDENTIFI...

GRANT ALL PRIVILEGES ON test.* TO 'test'@'%'

easytask.* TO 'test'@'%' にすべての特権を付与します...

IP アドレス 184.173.9.... は、PHP スクリプトがある専用のリモート サーバーです。176.249.200.... は私のローカル IP、3306 は MySQL ポートです。

于 2013-03-13T00:26:19.077 に答える
0

最初に接続されていることを確認します (タイムアウト/接続エラーではなく、接続が拒否されているはずです)。次を実行してテストできます。

mysql -h ip.addr.goes.here -p -u test

接続できない場合は、ファイアウォールの問題または構成の問題です。

接続しても許可が拒否された場合は、おそらく付与の問題です。ユーザーを作成し、テーブルへのアクセスを許可します

  CREATE USER 'dbusername'@'%' IDENTIFIED BY 'some_pass';
  GRANT ALL PRIVILEGES ON *.* TO 'dbusername'@'%'

% を localhost に置き換えた場合、ユーザーはローカルでアクセスできることに注意してください。IP を指定した場合は特定の IP から、% を指定した場合はリモートでのみアクセスできます。mysql ページの詳細http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

その後、特権をフラッシュして、それらが機能することを確認します。

  flush privileges
于 2013-03-13T00:48:50.897 に答える