目前无法从Intellij连接到在ubuntu上的码头容器上本地运行的mySql。
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| tasklogs |
+--------------------+
+----------+-----------+------+
| DATABASE | HOST | USER |
+----------+-----------+------+
| tasklogs | localhost | dev |
| tasklogs | localhost | root |
+----------+-----------+------+
+-----------------------------------------------------------+
| Grants for dev@localhost |
+-----------------------------------------------------------+
| GRANT USAGE ON *.* TO `dev`@`localhost` |
| GRANT ALL PRIVILEGES ON `tasklogs`.* TO `dev`@`localhost` |
+-----------------------------------------------------------+码头ps -a:

当我通过intellij连接时:

即“拒绝指定的数据库用户/密码组合:拒绝用户'dev'@'localhost‘(使用密码:是)的28000访问”
我正在输入正确的密码。
任何帮助都很感激。
谢谢,
发布于 2019-02-01 09:56:44
正如@danblack提到的,我需要通过tcp进行连接。
1)获取容器的IP:
docker inspect mysql1
2)我更改了mysql用户,允许从所有位置访问(正如前面提到的here):
'dev'@'%'以前是'dev'@'localhost'
这就成功了:

发布于 2019-08-30 01:45:59
解决方案
您没有将您的端口映射到本地主机,所以不能使用localhost --这就是为什么不能这样做的原因
ports:
- "3306:3306"发布于 2022-06-15 09:07:17
如果上面的答案对你没有用的话::
在我的例子中,我忘记了公开端口,但除此之外,我还让mySQL在本地运行。
因此,为了调试这一点,我做了以下工作:
mysql -h localhost -P 3306 --protocol=tcp -u root --password=password上面是成功的,我设法通过终端登录。
重要注意事项:当容器完成时,相同的命令允许我登录到本地(非容器化) mySQL。因此,我试图找出两者之间潜在的冲突,因为两者都有相同的端口。
解决方案:I在不同端口的3309中公开容器中的DB,从而成功地连接。
ports:
- "3309:3306"此外,检查以下内容也可能有帮助:
enabledTLSProtocols: TLSv1,TLSv1.1,TLSv1.2,TLSv1.3https://stackoverflow.com/questions/54471608
复制相似问题