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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM