• kubernetes 的wen pod 无法连接 mysql 的pod


    1.分析

    查看源代码
    既然无法建立连接,那先看下是如何建立连接的。登录到myweb的docker容器里面,查看index.jsp文件,主要内容如下:

    Class.forName("com.mysql.jdbc.Driver").newInstance();
    try{
    Class.forName("com.mysql.jdbc.Driver");
    String ip=System.getenv("MYSQL_SERVICE_HOST");
    String port=System.getenv("MYSQL_SERVICE_PORT");
    ip=(ip==null)?"localhost":ip;
    port=(port==null)?"3306":port;
    System.out.println("Connecting to database...");

    System.out.println("jdbc:mysql://"+ip+":"+port+"?useUnicode=true&characterEncoding=UTF-8");
    conn = java.sql.DriverManager.getConnection("jdbc:mysql://"+ip+":"+port+"?useUnicode=true&characterEncoding=UTF-8", "root","123456");

    stmt = conn.createStatement();

    就是用jsp创建了一个连接,连接的地址通过ENV方式注入。即在myweb-rc.yaml中配置的MYSQL_SERVICE_HOST和MYSQL_SERVICE_PORT环境变量指定。
    登陆myweb应用查看这两个环境变量是否有问题:

    [root@localhost ~]# kubectl exec -ti myweb-cp4gm -- /bin/bash
    root@myweb-cp4gm:/usr/local/tomcat# echo $MYSQL_SERVICE_HOST
    10.254.15.45
    root@myweb-cp4gm:/usr/local/tomcat# echo $MYSQL_SERVICE_PORT
    3306

    可以看出环境变量也是没有问题的。

    解决方法
    考虑到可能是mysql版本的问题,修改mysql版本为5.7,并且设置来直接使用本地镜像。

    https://blog.csdn.net/yinanmo5569/article/details/81352578

  • 相关阅读:
    HDU
    HDU-1166 敌兵布阵 (基础线段树)
    Matrices with XOR property (暴力)
    CF-825E Minimal Labels (反向拓扑)
    CodeForces-1144E Median String (模拟)
    操作文件和目录
    文件读写
    装饰器
    数据结构和算法
    Scrapy shell调试返回403错误
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/9690043.html
Copyright © 2020-2023  润新知