MySqlサーバーをUbuntuデスクトップにインストールしています。 Server Hostname
をlocalhost
と指定すると、MySqlクエリブラウザーを接続できますが、マシンのIPで置き換えると、(MySqlクエリブラウザーが同じマシンで実行されている場合でも)機能しなくなります。
これまでに行ったのはiptablesの削除だけですが、それとは何の関係もないようです。
ここにエラーメッセージがあります
ホスト「192.168.0.2」に接続できませんでした。
MySQLエラー番号。 2003年
'192.168.0.2'(111)のMySQLサーバーに接続できません
[Ping]ボタンをクリックして、ネットワークの問題があるかどうかを確認します。
Pingは大丈夫ですが
Mysqldを127.0.0.1とは異なるIPにバインドする必要があります。
My.cnf(通常は/etc/mysql/my.cnf)を開き、次のように変更します。
bind = 127.0.0.1
あなたのマシンが外界に接続するために使用するどんなIPにも。 0.0.0.0
はすべてのIPアドレスにバインドします。変更後、mysqldを再起動することを忘れないでください。
半解答に加えて、次のmysqlコマンドを実行する必要がありました。
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON databasename.*
TO 'username'@'clientipaddress'
IDENTIFIED BY 'password'
私が学んだように
ここで説明するいくつかの潜在的な問題:
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」または使用する予定のポートを設定することができます。