如何解决IDEA无法连接docker中的数据库的问题

 更新时间:2024年06月03日 15:33:28   作者:xihuanyuye  
这篇文章主要介绍了如何解决IDEA无法连接docker中的数据库的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

IDEA无法连接docker中的数据库

问题最后无解,或许可以通过抓包发现原因,但是经过两个小时的蛮力测试,最后证明可能当前应用的运行环境有关。

毕竟生成环境用的就是简单的‘123456’。

问题现象

本地idea起springboot的微服务,以com.alibaba.druid.pool.DruidDataSource连接池连接docker中安装的。

datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: 'jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&verifyServerCertificate=false'
    username: root
    password: '123456'
    druid:
      initialSize: 50
      minIdle: 50
      maxActive: 300
      maxWait: 60000
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT user()
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      poolPreparedStatements: true
      connection-properties: druid.stat.mergeSql:true;druid.stat.slowSqlMillis:5000

相关版本

连接池

<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.20</version>
</dependency>

数据库

dockerfile:
FROM mysql:5.7.25

现象

用以下命令可以修改数据库密码

grant all on *.* to root@'%' identified by 't$>9MJ4q' with grant option;
flush privileges;

当密码采用

‘123456’或者‘abcdef’时无法连接;当密码采访复杂的’t$>9MJ4q’时,就可以直接连接成功。

尝试了各种所谓密码需要用‘’包裹的方式,都无效。

本机连接docker数据库

首先要保证本机能访问虚拟机的网络

例如:可以通过远程连接工具连接到虚拟机

操作步骤

1.进入容器

docker exec -it 容器id /bin/bash

1).获取容器id

docker ps -a

图中红框为容器id

2.操作容器mysql

mysql -uroot -p  
use mysql
update user set password_expired = "Y"where user="root";
ALTER USER'root'@'%' IDENTIFIED WITH mysql_native_password BY '自己的数据库密码';

依次执行完成之后,可以通过你的数据库连接工具连接你docker中的数据库

工具连接:

cmd终端连接:

mysql -h 192.168.5.130 -uroot -p -P 3306 //192.168.5.130为自己的虚拟机ip

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

    Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

    这篇文章主要介绍了Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • docker容器非root用户提权的问题解决

    docker容器非root用户提权的问题解决

    本文主要介绍了docker容器非root用户提权的问题解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 不重启docker进程,重新reload加载配置过程

    不重启docker进程,重新reload加载配置过程

    这篇文章主要介绍了不重启docker进程,重新reload加载配置过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-09-09
  • 在docker中部署并启动redis的方法

    在docker中部署并启动redis的方法

    这篇文章主要介绍了在docker中部署并启动redis的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Docker 部署 RocketMQ 5.1.0 踩坑指南从超时到 Console 连不上的完整解决方案

    Docker 部署 RocketMQ 5.1.0 踩坑指南从超时到 C

    最近在项目中引入RocketMQ作为消息中间件,选择使用Docker容器化部署以简化环境搭建,本文给大家介绍Docker 部署 RocketMQ 5.1.0 踩坑指南从超时到 Console 连不上的完整解决方案,感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • Docker挂载文件结果是目录问题的解决方案

    Docker挂载文件结果是目录问题的解决方案

    在使用 Docker 进行应用容器化部署时,文件系统挂载(Volume Mount)是最常用的功能之一,也是问题高发区,本文给大家介绍了Docker挂载文件结果是目录问题的解决方案,需要的朋友可以参考下
    2025-05-05
  • docker容器高效连接Redis的方法步骤

    docker容器高效连接Redis的方法步骤

    在微服务架构中,Redis 是一种常见的高效缓存解决方案,通常用于存储临时数据、会话信息或 token,这篇博客将以实际项目为例,详细介绍如何配置 Flask 应用中的服务容器连接宿主机上的 Redis 服务,需要的朋友可以参考下
    2024-09-09
  • 容器平台下部署jumpserver跳板机全过程

    容器平台下部署jumpserver跳板机全过程

    jumpserver是一款堡垒机/跳板机,用于加强内网服务器的安全管理,本文介绍了jumpserver的安装、配置和使用方法,包括生成密钥、创建容器、测试连接、创建用户和用户组、添加资产、用户授权和测试连接等步骤
    2025-10-10
  • Docker安装方法与Docker四种网络模式详解

    Docker安装方法与Docker四种网络模式详解

    今天小编就为大家分享一篇关于Docker安装方法与Docker四种网络模式的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-09-09
  • docker如何部署tomcat应用

    docker如何部署tomcat应用

    这篇文章主要介绍了docker如何部署tomcat应用问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12

最新评论