2016-08-31 9 views
4

mysqlのドッキング・イメージをインストールしました。ドッカーで実行中のmysqlへの接続が遅い

docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD="Foo" -e DB_REMOTE_ROOT_NAME=root -e DB_REMOTE_ROOT_PASS="foo" -e DB_USER=foo -e DB_PASS="foo" -e DB_NAME=foo -v /:/host -v /home/user1/data/mysql:/var/lib/mysql mysql:latest 

すべてが良いですし、私は

docker exec -it mysql bash 
mysql -ufoo -pfoo foo 

とどこでもMy Macコンソールからだけでなく(ドッカEXEC -itなし)2通りの方法でのMySQLに接続することができます

mysql -ufoo -pfoo -h0.0.0.0 foo 

問題私は2番目のアプローチは接続に時間がかかることです。それは正常に接続するが、15から20秒の遅延のようなものがある。

ドッカーのexecでは、瞬時に接続します。

私のMac端末からボックスに最初のSSHではなくmysqlを直接使用して接続すると遅延が発生するのはなぜですか?

0.0.0.0をlocalhostに置き換えようとしました。しかし、その後、私はエラーに

mysql: [Warning] Using a password on the command line interface can be insecure. 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 

編集::

を取得する私は、次を試してみましたが、何が本当に

​​

を働かない上記のすべての3は

しかし場合は10秒の遅延を持っています私はそうです

docker exec -it mysql bash 
mysql -ufoo -pbar foo 

これは瞬間的で、遅延なしです

答えて

0

なぜ0.0.0.0を使用していますか? localhost-binding(mysql-clientビヘイビアー)のために、最初にソケットを使って接続しようとしているかもしれません。

  1. あなたがドッキングウィンドウ-用-MAC
  2. を使用している場合はlocalhost/127.0.0.1試しはあなたに/etc/hostsファイルに127.0.0.1 test.localのようなものを配置しようと使用-htest.local - これは、より高速な接続のでしょうか?
  3. あなたのmysqlコンテナは "DNS解決"を使用していますか? /etc/mysql/my.iniでskip-name-resolveを使用する方が速いですか? (aにも関係ない場合)、mysqlコンテナに壊れたDNSがあるかどうかを確認してください。
+0

0.0.0.0をlocalhostに置き換えた場合。 mysql:[警告]コマンドラインインターフェースでパスワードを使用することは安全ではない可能性があります。 ERROR 2002(HY000):ソケット '/tmp/mysql.sock'を介してローカルMySQLサーバーに接続できません(2) ' –

+0

docker-for-macを使用していますか?またはdockertoolbox? –

+0

最新のdocker-for-mac –

関連する問題