2016-08-23 132 views
1

我在docker上有mysql容器。 Mysql現在正在運行正確(因爲我的應用程序正在運行)。 當我輸入​​我看到mysql已啓動。這是pom.xml中的相關部分:連接到運行在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> 

我想在localhost終端上連接mysql。我打字:

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'有權限從本地主機訪問。 – Abanoub

+0

我對這些東西很新。我怎麼能確定我在容器內? – pronto

+0

這個命令打開容器'docker exec -it myContainerName/bin/bash'中的交互式shell,然後執行你的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並不知道docker的任何信息。您必須告訴mysq客戶端在哪裏查找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

相關問題