Docker部署数据库以及事件调度器功能使用
本文为博主独立完成的原创技术文档,首发于个人博客。
转载须知:
✅ 欢迎分享本文链接至技术群、朋友圈
✅ 个人收藏、学习使用不限
❌ 严禁洗稿、抄袭,或未经授权的商业转载/汇编
📩 如需转载至其他平台,请私信联系博主获取授权
作者:赵俊杰
一.文章概述
dokcer环境配置国内镜像源,拉取mysql镜像,启动mysql,创建表,创建数据,在容器中每分钟创建一次数据。
二.Docker部署mysql
2.1 配置docker镜像源
配置docker镜像源:(连接国内镜像源)
[root@node1 ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
],
"exec-opts": [
"native.cgroupdriver=systemd"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"storage-driver": "overlay2"
}
[root@node1 ~]#
重启docker服务:
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart docker.service
2.2 部署mysql环境
部署mysql环境:
docker run -d --name mysql-db --net=host -e MYSQL_ROOT_PASSWORD=Root@123456 mysql:8.0
进入容器:
docker exec -it mysql-db mysql -uroot -pRoot@123456
创建数据库:
CREATE DATABASE test_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
使用库:
USE test_db;
创建表:
CREATE TABLE t_user (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
age INT
);
打开事件调度器:
SET GLOBAL event_scheduler = ON;
-- 创建存储过程:一次性插入3条随机不重复数据
DELIMITER //
CREATE PROCEDURE proc_insert_3user()
BEGIN
INSERT INTO t_user(username,age) VALUES
(CONCAT('user_',FLOOR(RAND()*100000)), FLOOR(RAND()*60+18)),
(CONCAT('user_',FLOOR(RAND()*100000)), FLOOR(RAND()*60+18)),
(CONCAT('user_',FLOOR(RAND()*100000)), FLOOR(RAND()*60+18));
END //
DELIMITER ;
-- 创建定时事件:每1分钟执行一次,调用存储过程,永久生效
CREATE EVENT IF NOT EXISTS evt_insert_user
ON SCHEDULE EVERY 1 MINUTE
STARTS NOW()
DO CALL proc_insert_3user();
-- 看事件是否启用
SHOW EVENTS\G
-- 看表数据,等待1分钟观察数据上涨
SELECT * FROM t_user;
-- 停止定时事件
ALTER EVENT evt_insert_user DISABLE;
-- 重新开启
ALTER EVENT evt_insert_user ENABLE;
-- 删除事件
DROP EVENT IF EXISTS evt_insert_user;
-- 删除存储过程
DROP PROCEDURE IF EXISTS proc_insert_3user;
虽然前方拥堵,但您仍在最优路线上
本文来自博客园,作者:超级喜欢下雨天,转载请注明原文链接:https://www.cnblogs.com/zhao-junjie/p/23067497

浙公网安备 33010602011771号