2009-06-02 19 views
3

私はVPSを持っていて、mysql DBを(私のPCからの)外部接続を受け入れるようにします。 Debian Linuxをサーバにインストールしました。私はいくつかのチュートリアルをオンラインでチェックし、コメントすると答えました:mysqlが外部で接続を受け入れる方法

bind-address   = 127.0.0.1 

しかし、これは助けに見えませんでした! VPS固有のものは何ですか?私は何か他のものを逃していますか? MySQLを実行するコマンドは次のとおりです。

/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock 

答えて

4

MySQLサーバは、外部からの接続(適切なネットワークインタフェースへのバインディング)を受け入れるように設定されていなければなりません。また、そのポートで着信接続を許可するようにファイアウォールを設定する必要があります(TCPポート3306)。これは、MySQLのインストール時にすでに設定されている場合と設定されていない場合があります(* nixの場合はiptablesを参照)。

また、次のようにMySQLのアクセス許可でこれを考慮する必要があります。

多くの場合、MySQLのアクセス許可を設定すると、@ 'localhost'に対してのみユーザーアクセス権が設定されます。ユーザーアカウントと許可されたアクセス許可の両方が、接続する適切なホスト名またはIPアドレスに対してからに設定されていることを確認する必要があります。あなたは(この例では、PHPを使用しています)、このようなものを使用して、リモートでそのサーバーに接続する前にこのすべてをしなければならない

GRANT ALL PRIVILEGES ON somedatabase.* TO [email protected]'somehostname' IDENTIFIED BY 'password'; 
FLUSH PRIVILEGES; 

:たとえば、あなたが持つ新しい権限のあるユーザを作成することができ

mysql_connect('mysqlservername', 'someuser', 'password'); 
+0

PHPはどこに入りますか? – ysth

+0

ありがとうございました...これは役に立ちました...私もポートを開く必要がありました: iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT – Tam

+0

私はPHPを使用していませんが、他の情報良いです – Tam

0

は、あなたがあなたのマシンの外部IPアドレスの値の代わりに、ローカルホストのIPアドレスにバインドアドレスを設定する必要があります。後でMySQLサービスを再起動することを忘れないでください。

詳しくはthese other answersを確認してください。

+0

私はそれをやってからサーバーを起動できませんでした。 MySQLデータベースサーバーを起動しています:mysqld。 。 。 。 。 。 。 。 。 。 。 。 。 。 が失敗しました。 ポートなどを開くなど、他に何かしなければならないことはありますか? – Tam

+0

私は、あなたが拡張された省略記号を持っている重要なことがそこにあると思う。 – ysth

1

また、バインドアドレスをVPSマシンの外部IPに変更する必要があります(ipconfigは役に立ちます)。

あなたのPCからのアクセスを許可します。 root権限を持つローカルホストからデータベースに接続して行います。詳細については

grant all privilege on *.* to `username`@`your-pc-id` identified by 'your-password' 

MySQL grant documentationに目を通します。

関連する問題