当前位置: 首页 > news >正文

Linux——安装MySQL

使用docker容器

一、拉取 MySQL 容器

查找可拉取的Mysql版本

docker search mysql 

拉取 MySql 容器

docker pull mysql:5.7

二、停止并删除当前容器(保留数据卷)

前提是:已经创建过mysql容器

docker stop mysql && docker rm mysql

三、重新创建容器(关键配置)​

 docker run -d --name mysql --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v mysql_data:/var/lib/mysql mysql:5.7

 解释:

docker run -d --name mysql \
  --restart=always \                # 容器退出时自动重启
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 \     # 替换为你的密码
  -v mysql_data:/var/lib/mysql \   # 命名卷持久化数据
  mysql:latest                      # 或指定版本如 mysql:5.7

关键区别
❌ ​不要使用 --rm
✅ ​必须添加 --restart=always 和 -v 数据卷 

四、验证是否成功

1. 检查容器重启策略

docker inspect mysql --format='{{.HostConfig.RestartPolicy.Name}}'
  • ​应输出 always(如果显示 no 则配置失败)。

 2. 测试容器自恢复

docker stop mysql && docker ps -a | grep mysql
  • 几秒后容器应自动重启(状态从 Exited 变回 Up)。

 执行到这可能出现问题,不执行这一步也是能用的:

解决步骤:

1️⃣ 查看容器状态

docker ps -a | grep mysql  # 应显示状态为 "Up"

 2️⃣ 重新启动容器

docker start mysql 

五、常见问题处理

1. 如果之前没挂载数据卷怎么办?
  • 数据可能已丢失,需重新初始化数据库。
  • 未来务必使用 -v mysql_data:/var/lib/mysql 挂载数据。
2. 如何备份现有数据?

如果容器仍在运行但未挂载卷,临时备份数据:

docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > mysql_backup.sql

3. 仍遇到权限问题?

# 确保数据卷目录可被 Docker 访问
sudo chown -R 999:999 /var/lib/docker/volumes/mysql_data

999 是容器内 MySQL 用户的默认 UID)

六、最终效果

  • 容器永不自动删除​(无 AutoRemove
  • 崩溃后自动重启​(--restart=always
  • 数据永久保存​(通过 mysql_data 卷)
http://www.dtcms.com/a/103132.html

相关文章:

  • 【分布式系统】-2-GFS
  • 思维链(Chain of Thought, CoT)
  • StdioIterator
  • Python与图像处理
  • 反转链表题解
  • 六十天Linux从0到项目搭建(第二十二天)(pipe、管道四种场景)
  • 去中心化稳定币机制解析与产品策略建议
  • UGNX二次开发——截图功能
  • Markdown在线转word格式
  • 11AI搭建preparationのmnist手写体识别的三种方法
  • 如何解决../rtSafe/safeRuntime.cpp (25) - Cuda Error in allocate: 2 (out of memory)
  • PyTorch量化进阶教程:第四章 Transformer 模型构建与训练
  • C/C++蓝桥杯算法真题打卡(Day12)
  • Python Flask并发demo(http并发与锁)独占接口、monkey功能还不太确定
  • 目标检测 AP 计算 实例 python
  • SpringBoot详细教程(持续更新中...)
  • 不同版本的mysql数据库对于注入的影响
  • 解决Win7下打开Delphi 11.3 后提示“LSP Server 已停止工作“
  • 【Ragflow】8.基于ragflow API 搭建极简聊天Web界面
  • CMake —— 1、CMake简介(附:Windows、Linux下的CMake安装方法,及编译测试结果)
  • C++的位与、位或、左移、右移、异或、位取反
  • c++的封装
  • 大数据与datax1.0
  • HarmonyOS Next~鸿蒙元服务开发指南:核心功能与实践
  • DAY 32 leetcode 242--哈希表.有效的字母异位词
  • PHP Swoole 启动时的进程关系
  • ISIS报文
  • ES6 新特性全面总结
  • 26考研|高等代数:线性空间
  • 关于CodeJava的学习笔记——10