2017-11-17 6 views
-2

ドッカーハブから画像mysql/mysql-serverを取得しました。今度は、名前と電子メールの列を持つテーブルを作成し、このmysql dbに接続したいと思っていました。docker mysql/mysql-server imageでデータベースを作成し、java経由で接続する方法

以下の文を使ってこのデータベースに接続できますか?

接続connect = DriverManager.getConnection( "jdbc:mysql:// xxxxxxx:xxxxx/dbname"、 "uname"、 "pwd");

+1

をお試してみましたか?私ははい/いいえの質問はこのサイトのための良いものだとは思わないtbh –

+0

私はdb unameとpwdを持っていないので、私の質問はどのように作成するのですか – cks

答えて

0

docker inspect <container_name>を使用すると、ドッカーコンテナの詳細を確認できます。出力では、 "NetworkSettings"セクションの下にあるコンテナのIPアドレスを見つけることができます。

コンテナのIPアドレスを取得した後、リモートサーバと同じように扱い、通常のmysql-clientを使用して接続するか、JDBCを使用してJavaコードを使用して接続できます。

+0

どうすればdbname、uname、 – cks

+0

アクセスするには、マシンのIPにそのデータベースのアクセス許可を与える必要がありますか? – cks

+0

これは、コンテナの設定方法によって異なります。通常、彼らはいくつかの事前定義されたユーザー/パスを使用して接続し、パスワードを変更したり、データベースを作成したりすることができます。 – mahdix

0

これを行う必要があります。以前にコンテナを走らせましたか? DB(コンテナ?)に接続したい場所から「telnet」を試してください

接続が受け入れられる場合は、問題ありません。 Javaアプリケーション・コンテナとmysqlのコンテナが同じドッキングウィンドウのネットワーク内にある必要があり

+0

以下のコマンドを使用してコンテナを起動しました--name -e MYSQL_ROOT_PASSWORD = -d mysql:mysql-serverこれで、同じマシンでeclipseからアクセスできるようにテーブルを作成したかったのです – cks

+0

"docker exec -ti /bin/bash"でDBコンテナに接続し、必要なものを作成します。または、GUIでこれを行うには、phpmyadminまたはadminerイメージを使用します。 –

+0

私は上記のコマンドを入力し、このsh-4.2#を開いたので、dbを作成してそのdb内のテーブルを作成する必要があります – cks

0

あなたは、DBサービス名(またはコンテナ名)を使用して接続文字列を作成する必要があります

DriverManager.getConnection("jdbc:mysql://<mysqlcontainername>/dbname","uname","pwd"); 

注意。

私は環境変数から注入された完全な接続文字列(これはシステム管理者のための本当に甘い手順である)を作成することをお勧め:

DriverManager.getConnection("jdbc:mysql://username:[email protected]<mysqlcontainername>/dbname"); 
関連する問題