web-dev-qa-db-ja.com

MySqlサーバーをセットアップしてリモート接続を受け入れる方法は?

MySqlサーバーをUbuntuデスクトップにインストールしています。 Server Hostnamelocalhostと指定すると、MySqlクエリブラウザーを接続できますが、マシンのIPで置き換えると、(MySqlクエリブラウザーが同じマシンで実行されている場合でも)機能しなくなります。

これまでに行ったのはiptablesの削除だけですが、それとは何の関係もないようです。

ここにエラーメッセージがあります

ホスト「192.168.0.2」に接続できませんでした。

MySQLエラー番号。 2003年

'192.168.0.2'(111)のMySQLサーバーに接続できません

[Ping]ボタンをクリックして、ネットワークの問題があるかどうかを確認します。

Pingは大丈夫ですが

16
Jader Dias

Mysqldを127.0.0.1とは異なるIPにバインドする必要があります。

My.cnf(通常は/etc/mysql/my.cnf)を開き、次のように変更します。

bind = 127.0.0.1

あなたのマシンが外界に接続するために使用するどんなIPにも。 0.0.0.0はすべてのIPアドレスにバインドします。変更後、mysqldを再起動することを忘れないでください。

22
halfdan

半解答に加えて、次のmysqlコマンドを実行する必要がありました。

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON databasename.*
TO 'username'@'clientipaddress'
IDENTIFIED BY 'password'

私が学んだように

http://forums.mysql.com/read.php?86,23619,41248#msg-41248

5
Jader Dias

ここで説明するいくつかの潜在的な問題:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.htmlhttp:// dev。 mysql.com/doc/refman/5.1/en/access-denied.html

すべてのデータベースにすべての権限を付与したい場合は、

grant all on *.* to 'joe'@'%';

ただし、その前に、「mysql」データベースに「ホスト」がIPアドレスに設定されているユーザーがいることを確認してください。私の場合、自宅のIPです。したがって、ユーザー "joe"には、呼び出し元のIPごとに1つ以上のレコードがある場合があります。すでにそこにあるものを確認するには:

use mysql;
select Host, User, Password from user where user='joe';`

私の場合、ユーザーは正しいIPを持っていることがわかりましたが、パスワードも欠落しています。パスワードをカットアンドペーストし(ハッシュ化されているか何か)、これにより特定のリモート接続の問題が解決されました。

update user set Password='5493845039485' where user='joe';

もう1つ、my.cnfで「port = 3306」または使用する予定のポートを設定することができます。

2
PJ Brunet