zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    JavaScript:事件
    JavaScript系统对象
    DOM基础:table(表格)
    DOM基础
    Cookie的简单实用
    javascript:变量的作用域
    javascript:没有定义的变量和没有定义的属性
    数组的基本使用
    静态代码块、代码块、构造函数、匿名内部类、匿名内部类中的代码块
    java使用指定的国际化文件
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/9690043.html
Copyright © 2011-2022 走看看