旅するえんじにあ - Engineers to Travel -

旅するエンジニアの気まま備忘録

【MySQL】 外部からVirtualBox環境のMySQLへ接続する

今開発環境はWindowsを使用しているのですが、もちろんVirtualBoxの環境はCentOSなわけで。 Mac環境にすればいくらか楽なのですが、なんでか行く先々でWindowsが用意されているので 開発についてはWindowsに慣れてしまっています。 もちろん個人で開発したり、自宅は全てMac環境なのですが。

更にデータ管理者やプランナーにデータベースの説明をしたり テーブル構造について相談するときにターミナルだととても嫌がるというか 見難いと思われるようです。 エンジニア同士だったら問題ないのですが、、、

ということで毎回IDE的なものを入れてたりするのですが、毎回接続できなくて調べるので 接続についてのポイントを書いておこうと思います。

今回はHeidiSQLというGUIツールを試してみました。 ※どんなツールでも変わらないのですが

インストールも終わり、いざ接続というところで

sql error host is not allowed to connect to this mysql server

と出てくるわけです。

MySQLのVersionにもよるのですが、

Can't connect to MySQL server

というエラーを吐くこともあります。

この2点について解決していきたいと思います。

Can't connect to MySQL serverについてはmy.cnf内にbind-adressという設定をしている時に出てくることが多いです。

VirtualBox上のMySQLの設定を見ていきます。 bind-addressとは指定IPからの接続を許可するものになります。 こちらが設定されている場合、指定したIPからの接続しか許可されていないために接続ができないとエラーが出るわけです。 セキュリティの事を考えるとここのbind-addressを接続したいマシンのIPアドレスを入れる事によって解決しますが 今回のようにローカルマシンで接続する場合にはbind-addressをコメントアウトすることによってどのIPからも接続することができます。

次にhost is not allowed to connect to this mysql serverについてです。 このエラーについてはallowedつまり権限がないというエラーになっています。 なのでこちらについてはMySQLユーザに対して権限を付与してあげます。

GRANT ALL PRIVILEGES ON *.* TO root@'192.168.%' IDENTIFIED BY 'root のパスワード' WITH GRANT OPTION;

上記のコマンドについてはrootユーザに対して権限を付与しています。

これで接続が可能となるはずです。 毎回これで調べてるのに忘れているってことは実践とこういったブログなどでのアウトプットまでしないとダメですね。 最近わからないことを調べようとする度にこのブログにあったなぁと思って見るようになってきました。 毎日じゃなくても、わからないことがあったらブログ等でアウトプットする事を習慣化することは重要ですね。