質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

2回答

4555閲覧

eclipseからmysqldへの接続について教えて下さい

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

1クリップ

投稿2015/12/04 11:01

eclipseで書いているjspからvagrant上のcentosで動いているmysqlに接続しています。
つまりMacOSからvagrant上のCentOSへ接続しています。
eclipseのコードからは「192.168.33.10」で接続します。

mysql

1create user 'vagrant'@"%"; 2grant all privileges on *.* to 'vagrant'@'%' with grant option;

Vagrantファイルは以下のようにデフォルトから2箇所だけ変更しています。

Vagrant

1config.vm.network "forwarded_port", guest: 3306, host: 3306 2config.vm.network "private_network", ip: "192.168.33.10"

/etc/my.cnfは以下のように編集しています。

my.cnf

1bind-address = 0.0.0.0

mysqlにあるユーザは以下のようになっています

linux

1mysql> select user,host from mysql.user; 2+---------+--------------------------------+ 3| user | host | 4+---------+--------------------------------+ 5| vagrant | % | 6| root | 127.0.0.1 | 7| root | ::1 | 8| | localhost | 9| root | localhost | 10| | vagrant-centos64.vagrantup.com | 11| root | vagrant-centos64.vagrantup.com | 12+---------+--------------------------------+

本題ですが、

①mysql側で
create user 'vagrant'@"%";でユーザを作って
192.168.33.10でvagrantユーザに入り、
tableを作成し、
eclipse側で192.168.33.10に接続することはできるのですが、

②mysql側で
create user 'vagrant'@"192.168.33.10";でユーザを作って192.168.33.10でvagrantユーザに入り、
tableを作成し、
eclipse側で192.168.33.10に接続することが出来ないのはなぜでしょうか?

接続出来なかった時のeclipseのエラーで「Access denied for user 'vagrant'@'192.168.33.1'」と出たので、
MacOS側のアドレスが192.168.33.1なのだと思い、ifconfigで確認したところ

linux

1vboxnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 2 ether 0a:00:27:00:00:00 3 inet 192.168.33.1 netmask 0xffffff00 broadcast 192.168.33.255

と出たので間違いでなければそうではないかと思っています。

②の方法で接続出来ないのは同じvagrantユーザにmac側が192.168.33.1で、centOS側が192.168.33.10でテーブルを作っているからでしょうか?

また、
eclipseから「localhost」でvagrant上のmysqlにアクセスしたいのですが、どうすれば良いですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi-sun

2015/12/06 01:14

Vagrant上の…「何」でしょうか? Vagrant自体には仮想マシンという実体がありません。 今までは例えばローカル開発環境を作りたい時に、 VirtualBOXで建てたLinux鯖をGUIでポチポチやったり、ログインしてごにょごにょしてようやく使える様になったかと思います。 VagrantはVirtualBOX、VMWare、AmazonAWS(インターネットの向こうのクラウド鯖)等のやり取りを、 統一されたコマンドと設定ファイルで解決出来るように作られたラッパー的な存在です。
guest

回答2

0

http://qiita.com/alegriaghost/items/b80ff211ed8ff6239c42

この辺を参考にもう一息頑張ってみてください。

以下駄文

Vagrantの一般的な使い方はVirtualBOXとの連携でローカル開発環境を作ることですので、
Vagrant上でVirtualBOXを触った時、どういう設定にすれば良いか…が問題解決ポイントになるかと思います。

よく使うVagrantfileの設定のまとめ
この辺に丁寧にまとめられています。

config.vm.network "private_network", ip: "192.168.33.10"

VirtualBOXの仮想ルーター機能を使って、
MacOS自身は内部では「192.168.33.1」を名乗り、
Vagrantのインスタンスは「192.168.33.10」という端末をぶら下げた状態になる。

…という状態になるようVirtualBOXを設定している、くらいに考えてます(偉い人に叱られそう)

config.vm.network "forwarded_port", guest: 3306, host: 3306

こちらはMacOS自身の3306ポートにアクセスが来た場合、
仮想マシン内の3306につなぐという設定かと思いますので、今回のやり方では設定する必要はないでしょう。

投稿2015/12/06 01:37

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

整理すると、「MacのIPアドレスが、192.168.33.1で、CentOSが192.168.33.10で、MySQLはCentOS上にインストールされている」ということですよね。

②の方法で接続出来ないのは同じvagrantユーザにmac側が192.168.33.1で、centOS側が192.168.33.10でテーブルを作っているからでしょうか?

その認識で問題ないと思います。接続元IPが192.168.33.10のvagrantユーザーを作成しているのに、192.168.33.1からアクセスしているために、認証に失敗しています。

また、 eclipseから「localhost」でvagrant上のmysqlにアクセスしたいのですが、どうすれば良いですか?

試してないですし、localhostのhosts書き換えがどうなるかはわからないですが、以下のようにしたらできませんかね?

bash

1sudo vim /etc/hosts 2# パスワード入れる 3127.0.0.1 localhost 4これを 5192.168.33.10 localhost 6に変更する。

ただlocalhostの書き換えはなんとなく違和感があるので、例えばMacのhostsに

192.168.33.10 db_server

として、CentOSのhostsni

127.0.0.1 db_server

として、db_serverでアクセスするようにすれば、macからもcentosからも同じソースコードでcentos上のMySQLを参照できるようになりますが、どうでしょうか?

投稿2015/12/06 00:55

編集2015/12/06 00:57
sekitaka_1214

総合スコア509

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問