虚拟机下docker启动mysql的一个问题——缓存了数据库,造成无法新建表

【问题】

每次启动虚拟机后,docker会自动运行,但docker运行后加载的数据库用Navicat连接时,

仍然是用以前老的数据,在数据库上面添加表后,mybatis始终报缺少该表。

真的是莫名其妙,反复排查。

 

【解决方案】

把docker上的mysql重新启动一下,然后重新用Navicat进行连接。

docker restart mysql

 

 

 

### 使用 Docker 在 CentOS 上安装 MySQL 8 #### 准备工作 在开始之前,需确认操作系统版本满足要求。支持的操作系统包括 CentOS 7、CentOS 8 (stream),或者 CentOS 9 (stream)[^1]。 更换 Yum 源可以提高软件包下载速度并减少错误发生概率。如果尚未完成此操作,则建议先替换默认的 Yum 源至更稳定的第三方源(如阿里云或网易)。 #### 安装 Docker 对于 CentOS 的不同版本,Docker 的安装方法略有差异。以下是通用步骤: 1. **停止现有服务** 如果已安装旧版 Docker,请先卸载它及其关联组件: ```bash systemctl stop docker yum remove -y docker docker-common docker-selinux docker-engine ``` 2. **设置存储库** 添加官方 Docker CE 存储库到系统的 package manager 中: ```bash dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo ``` 3. **更新缓存并安装最新版本的 Docker Engine** 执行以下命令来获取最新的稳定版 Docker 并安装: ```bash dnf makecache fast && dnf install -y docker-ce docker-ce-cli containerd.io ``` 4. **启动 Docker 服务** 启动 Docker daemon 和将其设为开机自启: ```bash systemctl start docker systemctl enable docker ``` 验证 Docker 是否正常运行可以通过执行 `docker version` 命令查看输出结果是否显示当前环境下的客户端和服务端信息[^4]。 #### 下载 MySQL 镜像 一旦成功部署好 Docker 环境之后就可以继续下一步——拉取所需的数据库镜像文件了。这里我们指定要使用的具体标签号为 latest 来代最新发布的正式发行版即 v8.x系列。 ```bash docker pull mysql:latest ``` 这一步骤会自动从远程仓库同步目标镜像下来本地保存起来以便后续创建实例时候调用[^3]。 #### 运行容器 定义一些必要的参数选项用于初始化新的 Mysql 实例过程之中,比如暴露外部访问端口映射关系以及持久化数据目录位置等等细节设定如下所示: ```bash docker run --name=mysql-container \ -e MYSQL_ROOT_PASSWORD=your_password_here \ -p 3306:3306 \ -v /my/custom/mysql/conf:/etc/mysql/conf.d \ -v /my/custom/mysql/data:/var/lib/mysql \ -d mysql:latest ``` 上述脚本中的各个部分解释如下: - `-e`: 设置环境变量,在这里是给 root 用户分配初始密码; - `-p`: 将主机上的某个 TCP/IP 协议族内的特定编号绑定至对应虚拟机内部进程监听地址之间建立连接通道; - `-v`: 数据卷挂载路径分别指向配置文件夹与实际储存记录所在物理磁盘区域; 最后加上后台模式标志符(-d),让整个程序能够在独立线程里持续运作而无需占用终端界面交互资源. #### 访问管理 为了能够更加便捷地操控已经构建完毕的服务单元体,有两种常用方式可供选择实现深入探索其功能特性目的达成效果最佳状态呈现形式展示出来给大家看明白了解清楚知道怎么去做才行啊! ##### 方法一:直接登录 shell 终端控制台 利用下面这条指令可以直接切换进入到正在活动当中的那个名为 "mysql-container" 的 session 当中去体验一番吧! ```bash docker exec -it mysql-container bash ``` 此时你应该可以看到提示符变成了类似于这样的样子:`root@<container_id>:/#`,这就意味着你现在正位于该容器所处的工作空间范围内啦[^2]! ##### 方法二:借助专用工具 GUI 图形界面应用程序辅助操作处理事务流程简化效率提升显著改善用户体验满意度水平达到新高度境界层次之上哦亲们快来试试呗😊💕 当然除了以上提到过的这些常规手段之外还有很多其他高级技巧等待着大家自行发掘研究学习掌握运用自如呢😉😎 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰暗角落里的琴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值