質問: phpmyadminを使用してリモートデータベースに接続できますか? 最近 このチュートリアルを読んでください これは、phpmyadminのローカルインストールを簡単に再構成してリモートデータベースに接続する方法を説明しています。この機能はサポートされているようですが、デフォルトでは有効になっていません。チュートリアルに従いましたが、リモートホストに接続しようとすると、検証が失敗します。誰かが関連する質問へのコメントで、mysqlログインはusername@ipaddressの形式をとると説明しました。リモートデータベースはusername@remotemachineipを予期しますが、phpmyadminはusername@mylocalipを送信します。彼がそれについて正しければ、それは私の問題かもしれません。記事がそれについて言及していないので、これはしかし混乱を招きます。 phpmyadminを使用してリモートサーバー(amazon ec2でホストされている)に実際に接続できますか? これは私の接続の試みにおける本当の問題でしょうか? もしそうなら、どうすればそれを解決できますか?
回答: phpmyadminは、リモートマシンのホスト、ユーザー、パスワードを設定するだけで、リモートデータベースに接続できます。ホストでmysqlポートが開いている限り、そこで実行されているmysqlはネットワーク接続を許可するように構成されており、ユーザーにはリモート接続の権限があります。phpmyadminを実行しているマシンまたは他のマシン(mysqlサーバーではない)から、コマンドラインクライアントを実行して、接続が可能かどうかをテストします。$ mysql -h<ip> -u<user> -p<password> <database> ipはmysqlサーバーのipであり、databaseはデータベースの名前であり、userとpasswordはmysqlのユーザーの資格情報です。これにより、mysqlクライアントが成功したときにプロンプトが表示されます。またはエラーの適切な説明。[〜#〜] update [〜#〜]mysqlサーバーは通常、ローカルソケットのみをリッスンするように構成されています。 ti 3306 tcpデフォルトではポートをバインドしません。正しく構成するには、サーバーの構成ファイル(通常は/etc/my.cnf)を編集する必要があります)[mysqld] bind-address = 10.0.0.5 この例のipをサーバーのipアドレスに置き換える必要があります。また、オプション「skip-networking」がアクティブになっていないことを確認する必要があります。これは、mysqlが構成されたipをバインドできなくなるためです。再起動後、mysqlがサーバーのシェルで次のコマンドをリッスンしているかどうかを確認できます。# netstat -nap | grep mysqld tcp 0 0 10.0.0.5:3306 0.0.0.0:* listen 3547/mysqld unix 2 [ acc ] stream listening 13554 3547/mysqld /var/lib/mysql/mysql.sock ここで最初の出力のような行を確認する必要があります。 3306番号はデフォルトのmysqlポートであり、サーバーを保護するファイアウォールがある場合は、着信tcp接続用に開く必要があります。この後、mysqlに接続できるようになります。ただし、権限が適切に設定されていないと、ログインに問題が発生する可能性があります。 mysqlユーザーのユーザー名とホストはuser @ hostの形式であるため、ユーザーを作成した場合my_user @ localhost localhostとは異なる場所からログインしようとすると、アクセスが拒否されます。クライアントがipアドレス10.0.0.33のマシン上で実行されており、データベースへのアクセスを許可したいとします。ユーザーはmy_user@10.0.0.またはmy_user @%である必要があります。これは、任意のマシンから接続するための2番目の無制限ユーザーです。クライアントのipを事前に知っている場合は、どちらを避けるのがよいでしょう。