目标
本次实践课的课程目标如下
目标:通过实践操作,掌握MYSQL不停机迁库的原理和操作方法。实践出真知啊,一定要动手实践才能真正掌握。
环境
操作系统 kali
MySQL 8.0
操作流程大纲
- 源码安装MYSQL8.0
- 启动2个MYSQL实例,并创建用户表
- 用Python编写导入大量用户信息(约10万条记录)的脚本
- 编写一个SpringBoot应用程序,开发一个HTTP接口随机访问用户
- 编写一个BASH,无限循环访问这个HTTP接口
- 不停机迁库
操作步骤说明
-
源码安装MYSQL8.0
具体的源码安装MYSQL教程请参考:https://luyuanwan.github.io/2019/01/06/源码安装mysql/
建议读者也能源码安装MYSQL,多动手一定会学到很多东西的 -
启动2个MYSQL实例,并创建用户表
关于如何启动2个MYSQL实例,请参考:
创建用户表语句如下:
CREATE TABLE user(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
PRIMARY KEY(id)
);
- Python编写导入SQL数据脚本
for i in range(100000): print("insert into user(name) values('name' + str(i));");
- 编写SpringBoot应用,Controller代码如下
@RestController public class UserController{ @Autowired UserDao userDao; Random random = new Random(100000); @RequestMapping(value = "/get/user",method=RequestMethod.GET) public String user(){ int id = random().nextInt(); if(id<0){ id = id*-1; } id = id % 100000; User user = userDao.findUser(id); return JSON.toJSONString(user); } }
- 编写Bash
while true do curl localhost:8080/get/user done
- 不停机迁库
未完待续
如果觉得排版不好看,可以参考:https://github.com/luyuanwan/luyuanwan.github.io/blob/master/_posts/2019-01-09-实践课:不停机迁库.md