在第一节中我们创建了mysql的Service,上一节我们运行了Spring-boot的项目。这一节我们将两个项目结合起来,让spring-boot访问mysql服务。

一、给Spring-boot项目的Deployment添加环境变量

Kubernetes运行着大量的Service,那么必然需要服务发现机制。由于一个Service的Cluster IP不会发生改变,那么Kubenetes就使用了环境变量来解决了这个问题。使用时将要使用的服务添加到环境变量即可。在上节的yaml文件中修改spec.template.spec.containers项即可。

containers:- name: springboot-demoimage: k8s-boot:2.0imagePullPolicy: Neverports:- containerPort: 8080env:- name:MYSQL_SERVICE_HOSTvalue: 'mysql'- name: MYSQL_SERVICE_PORTvalue: '3306'

二、准备可访问数据的Spring-boot项目

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://${MYSQL_SERVICE_HOST:localhost}:${MYSQL_SERVICE_PORT:3306}/test?useUnicode=true&characterEncoding=utf-8username: rootpassword: 123456

三、按上节部署方式进行部署

上传镜像是一个比较繁琐的工作,我提供了上传到指定主机的脚本image_deploy.py在github上。

部署完成后在浏览器中测试:http://:30000/user/findAll。最终会返回以下错误:

java.sql.SQLSyntaxErrorException: Unknown database 'test'

这是因为我们的数据库服务尚未进行正确的初始化。

四、初始化数据库

初始化数据库有很多种方式,例如:

暴露Service的NodePort,然后用图形化客户端连接,执行SQL语句

在Pod中运行mysql客户端,执行SQL语句

借助ConfigMap,启动Pod时获取初始化SQL语句并执行

第一种咱们已经接触过了,第三种尚未学习。今天我们就采用第二种初始化。

第一步要获取mysql pod的名称:

$ kubectl get pod  -l app=mysqlNAME READY STATUS RESTARTS AGEmysql-qkfcd 1/1 Running 0 4d22h

第二步进入容器:

$ kubectl exec -it mysql-qkfcd /bin/bashroot@mysql-qkfcd:/#

第三步连接mysql服务,执行SQL

root@mysql-qkfcd:/$ mysql -uroot -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 18Server version: 8.0.17 MySQL Community Server - GPLCopyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database test;Query OK, 1 row affected (0.00 sec)mysql> use test;Database changedmysql> CREATE TABLE `user` (-> `id` int(11) NOT NULL AUTO_INCREMENT,-> `user_name` varchar(45) NOT NULL,-> `password` varchar(45) NOT NULL,-> PRIMARY KEY (`id`)-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;Query OK, 0 rows affected, 1 warning (0.01 sec)mysql> exit

最后退出即可。

代码下载:

https://github.com/loveoobaby/blog_code

springboot整合mysql5.7_每天五分钟写K8(四):SpringBoot与mysql整合相关推荐

  1. 五分钟写一手漂亮的markdown--基础篇

    Markdown快速入门–基础篇 文章目录 Markdown快速入门--基础篇 一,标题 二,段落格式 三,字体设置 四,各种线 五,代码 六,列表 七,区块 八,超链接 九,图片 图片描述 十,表格 ...

  2. springboot整合mysql5.7_详解SpringBoot整合MyBatis详细教程

    1. 导入依赖 首先新建一个springboot项目,勾选组件时勾选Spring Web.JDBC API.MySQL Driver 然后导入以下整合依赖 org.mybatis.spring.boo ...

  3. 五分钟写一个小爬虫,爬取小说并写入txt文件

    先上代码: #-*- coding:UTF-8 -*- import requests from lxml import html url='http://www.shuge.net/html/111 ...

  4. 五分钟写出一个可以滑动条拖动的矩形脉冲合成的MatlabGUI程序

    命令行输入 GUIDE 创建空白GUI程序 拖动控件,右键察看滑动条的回调函数,粘贴如下代码 滑动条参数设置 function slider1_Callback(hObject, eventdata, ...

  5. 十分钟写一个基于springboot+vue+redis+mysql的银行转账与用户后台管理系统,redis实现用户登录与缓存

    界面效果 用户管理界面 详情页面 编辑页面 删除功能 用户界面 查询余额 取出余额 存款 转账 后端包结构 bean包下代码 管理员类 package com.example.qqqundatabas ...

  6. 五分钟学习React(四):什么是JSX

    JSX,即javscript XML,是js内定义的一套XML语法.目前是使用babel作为JSX的编译器.这也是在前几期中载入babel的原因. Facebook引入JSX是为了解决前端代码工程复杂 ...

  7. SpringBoot从入门到精通教程(二十九)- 微信企业支付集成(五分钟集成)

    需求背景 SpringBoot用法:微信企业支付集成(五分钟集成) 问题痛点 通过SpringBoot框架,集成服务端微信企业支付接口,做到下载即用(填写好相关微信支付后台相关Key信息),最快五分钟 ...

  8. 计算机使用技巧爆文,自媒体干货篇:利用这个小技巧可以五分钟之内写好一篇爆文!...

    原标题:自媒体干货篇:利用这个小技巧可以五分钟之内写好一篇爆文! 上期给大家分享了如何拟写一篇文章的爆文标题,今天就跟大家分享,如何在五分钟之内写好一篇爆文!相信大家在写文章的时候,最让人头疼的就是为 ...

  9. 五分钟实现SpringBoot快速入门

    文章目录 一.创建Maven工程 二.添加SpringBoot的起步依赖 三.编写SpringBoot引导类 四.编写Controller 五.测试 六.SpringBoot工程热部署 一.创建Mav ...

最新文章

  1. 数据结构与算法(C++版)
  2. Vue 脚手架||Vue 脚手架的基本用法
  3. 汽车需要镀晶吗?镀晶是起什么作用的?
  4. SpringBatch 写文件JSON(JsonFileItemWriter)用法(十二)
  5. 软件工程学习进度第九周暨暑假学习进度之第九周汇总
  6. 信息技术产业的黄金十年?听听他怎么说
  7. JavaScript-callapply方法
  8. Kalman filter—直观理解
  9. UDS与DoIp整理
  10. jmeter脚本录制http/https
  11. 密码破解---John the Ripper使用
  12. 软件测试需要学什么?测试小白入门必看!
  13. 浙大MPA常规批复试上岸经验分享
  14. 5年前,榨干程序员老公1300万资产,逼其跳楼自杀的翟欣欣如今怎样了?
  15. 前端 html 文字在 div 中怎么实现自动换行
  16. 使用HFS+cpolar组合 低成本搭建NAS(1)
  17. 草莓采摘机器人——ROS导航(一) ROS Kinetic + Handsfree系统安装以及环境配置
  18. python杂志订阅系统详细设计_系统详细设计
  19. java计算一元二次方程的根_java基础 --- 求一元二次方程的根(分情况讨论)-Go语言中文社区...
  20. 利用python改图片为任意颜色

热门文章

  1. 前端技术分享:教你玩转vue-router命令视图
  2. JAVA工程师定向招聘_Java工程师面试题整理[社招篇]
  3. mysql5.7 glibcxx_3.4.15_Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
  4. date类before()方法的主要作用是_黄精的主要作用及中医食疗方法
  5. 如何在mac版本的python里安装pip
  6. Python运算符和编码
  7. Python可视化中的Matplotlib(6.散点图以及详细参数、为图形添加文字、注释、箭头以及它们的参数)
  8. 面向对象编程 object oriented programming(OOP)(第二篇)
  9. JavaScript实现jumpSearch跳转搜索算法(附完整源码)
  10. OpenCASCADE绘制测试线束:布尔运算命令之两个操作数的布尔运算