一个平民 发表于 2024-6-11 22:42:38

如何解决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/bash1).获取容器id
docker ps -a
图中红框为容器id
2.操作容器mysql
mysql -uroot -puse mysqlupdate 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

总结

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

来源:https://www.jb51.net/server/3221409im.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 如何解决IDEA无法连接docker中的数据库的问题