2010年02月02日

Debian/lenny MySQLに外部マシンから接続(リモート接続)

MySQLを触るにしても、これまでDebian機にtelnetでログインし、その中でmysqlを使う、またはphpmyadminを経由する、つまりMySQLサーバにはlocalhostから接続という形態でしか使ってなかったので、問題は無かったのですが、Windows上でNavicat Liteというツールを使い始め、そいつでDebian機のMySQLに接続しようとするとエラーを食らいました。

そのときのエラーメッセージは、

ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

つまり、そもそもMySQL自体に接続できていない。(権限云々以前の話)
もちろん実際にはmysqldは起動している。
ということは、MySQLのネット接続の設定とでもいうものでもあるのか?
と検索してみると、/etc/mysql/my.cnfのbind-addressという項目をいじれば良いということが判明する。デフォルトのままだと全く外部からの接続を受け入れないようになっているらしい。

検索で見つけたページ達はおおむね、この項目をコメントアウトすることで問題を解決していた様子。

#bind-address = 127.0.0.1

ただ、ここに適切なアドレスを設定するのが本来ではないかと思い、LAN内のマシンからの接続は受け入れるようにしたくて

#bind-address = 127.0.0.1
bind-address = 192.168.0.0/255.255.255.0

というようにしてみた。
これでMySQLサーバを再起動

/etc/init.d/mysql restart

しかし、MySQLが起動途中でエラーで止まる。
「マスクは駄目かな?」「とりあえず常用マシンからの接続だけでも受け入れさせたい」と常用マシンのLAN内アドレス(192.168.0.2)を設定してみても駄目。

考えてみると、この項目名は"bind〜"。
「もしや自マシンのアドレス?」と思って、Debian機のLAN内での固定アドレス(192.168.0.8)を設定してみる。

#bind-address = 127.0.0.1
bind-address = 192.168.0.8

これでMySQLを再起動させてみると、今度は再起動成功。
そして別マシンからのリモート接続も成功。

つまり、MySQLサーバ機に外部から接続したい場合は、

/etc/mysql/my.cnfのbind-addressを
・コメントアウトする
or
・MySQLが動いているマシンに割当てのIPアドレスに書換える

ということのようです。

この設定で接続マシンを選別できるわけじゃあないのだから、単にコメントアウトの方が簡単ですね。


ラベル:Debian Linux MySQL
posted by 管理者 at 20:29| Comment(0) | TrackBack(0) | MySQL | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。