2016-08-23 19 views
1

私はdockerにmysqlコンテナを持っています。 Mysqlは現在正しく動作しています(アプリケーションが動作しているため)。 ​​と入力すると、mysqlが起動しています。私はローカルホスト端末上のMySQLに接続しようとしていますDockerコンテナで動作するmysqlに接続するubuntu 16.04

   <driver>com.mysql.jdbc.Driver</driver> 
       <url>jdbc:mysql://127.0.0.1:3310/fraud_dev</url> 
       <defaultSchemaName>abc_dev</defaultSchemaName> 
       <username>abc_dev</username> 
       <password>abc_dev_123</password> 

:これはのpom.xmlの関連部分です。私はこれを入力しています:

mysql -u 'abc_dev'@'localhost:3310' -p

私はパスワードを入力しています。私は私が間違っているところを知らない

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

:その後、私はこのエラーを取得しています。どうすれば修正できますか?

ありがとうございました。

+0

コマンドを実行するときにコンテナに入っていることを確認してください。また、ユーザー 'abc_dev'にlocalhostからのアクセス権があることを確認してください。 – Abanoub

+0

私はこれらのことについて非常に新しいです。どのように私はコンテナの中にいると確信できますか? – pronto

+0

このコマンドは、コンテナ 'docker exec -it myContainerName/bin/bash'の中で対話的なシェルを開き、次にmysqlコマンド – Abanoub

答えて

0

標準のmysqlポート3306は使用しません。このため、使用するポートを指定する必要があります。

mysql -u abc_dev -p -h localhost --port 3310 
+0

私はドッキングウィンドウ-compose.ymlにその程度だと思う: 'mysqlの-DB: 画像:mysqlの:5.7.11 コマンド:mysqldを--lower_case_table_names = 1つの ポート: - "3310:3306" env_file: - 。/ env-variables/commons.env' – pronto

+0

そうです。しかし、mysql cli-clientはドッカーについて何も知らない。 mysqldクライアントにmysqlサーバを探す場所を指定する必要があります。そうでなければ、クライアントはあなたが '/ var/run/mysqld/mysqld.sock'に接続したいと仮定します。私は良いコードで私の投稿を編集しました – Ohmen

+0

'mysql -u abc_dev -p -h localhost --port 3310'しかし、 'ソケット経由でローカルMySQLサーバに接続できません '/ var/run/mysqld/mysqld .sock '(2) 'は変更されませんでした。 – pronto

関連する問題