基于Docker安装部署MySQL

博客介绍了在Docker中部署MySQL 5.6.51镜像的步骤,包括启动服务、进入容器、创建数据库、导入SQL文件、创建账号并修改权限等操作。还给出了备份数据库脚本,以及添加计划任务,实现每三十分钟执行一次备份任务的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、下载MySQL5.6.51的docker镜像:

docker pull mysql:5.6.51

2、使用如下命令启动MySQL服务:

docker run -p 3306:3306 --name mysql \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
--restart=always \
-d mysql:5.6.51

3、参数说明

- -p 3306:3306:将容器的3306端口映射到主机的3306端口
- -v /data/mysql/conf:/etc/mysql:将配置文件夹挂在到主机
- -v /data/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
- -v /data/mysql/data:/var/lib/mysql/:将数据文件夹挂载到主机
- --restart=always \       Docker重启时自动重启
- -e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码

4、进入运行MySQL的docker容器:

docker exec -it mysql /bin/bash

5、使用MySQL命令打开客户端:

mysql -uroot -proot --default-character-set=utf8

6、创建mall数据库:

create database mall character set utf8;

7、先将 store_dev.sql 上传到,将store_dev.sql文件拷贝到mysql容器的/目录下:

docker cp /data/store_dev.sql mysql:/

8、将sql文件导入到数据库:

use mall;
source /store_dev.sql;

9、创建一个reader:123456帐号并修改权限,使得任何ip都能访问:
注意:此处请自定义自己的账号密码,这里只是示例。

grant all privileges on *.* to 'mall' @'%' identified by '123456';
  1. 备份数据库脚本
    mysqlback.sh

    #!/bin/bash
    
    # 备份文件保存的目录
    backup_dir="/data/mysqlbak/"
    
    # 获取当前日期和时间作为时间戳
    timestamp=$(date +"%Y%m%d_%H%M%S")
    
    # 备份MySQL数据库到带有时间戳的文件名中
    docker exec mysql sh -c 'exec mysqldump dataname -uuser -p"password"' > "${backup_dir}db_backup_${timestamp}.sql"
    
    # 列出备份目录下的所有备份文件,并按时间戳降序排序
    backup_files=($(ls -t "${backup_dir}"*.sql))
    
    # 计算备份文件数量
    num_backup_files=${#backup_files[@]}
    
    # 如果备份文件数量超过50份,则删除较旧的备份文件
    if [ $num_backup_files -gt 50 ]; then
    	# 计算要删除的备份文件数量
    	num_to_delete=$((num_backup_files - 50))
    
    	# 循环删除较旧的备份文件
    	for ((i = 0; i < $num_to_delete; i++)); do
    		rm "${backup_files[$i]}"
    	done
    fi
    
    # 将最新的备份文件打包成压缩包
    tar -czvf "${backup_dir}backup_${timestamp}.tar.gz" "${backup_dir}db_backup_${timestamp}.sql"
    
    # 删除原始的备份文件(可选,如果需要节省磁盘空间)
    rm "${backup_dir}db_backup_${timestamp}.sql"
    
    

    添加计划任务:
    打开终端。
    输入以下命令来编辑你的cron表(计划任务表):

    crontab -e
    

    如果是第一次编辑cron表,系统会要求你选择一个文本编辑器。你可以选择自己熟悉的编辑器,比如nanovim
    在打开的cron表中,添加以下行来每三十分钟执行一次任务:

    */30 * * * * your_command_here
    

    your_command_here替换为你想要定期执行的命令或脚本路径。

  • */30:表示每隔30分钟执行一次。
  • *:表示任意的取值,这里代表每小时的任意分钟。
  • *:表示任意的取值,这里代表任意一天的日期。
  • *:表示任意的取值,这里代表任意一个月份。
  • *:表示任意的取值,这里代表任意一周的星期几。
    编辑完成后,保存并退出编辑器。
    系统会自动保存你的cron表,并开始按照你的设置定期执行任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值