作者: kideny 访问次数: 3402 创建时间: 2023-01-02 00:19:21 更新时间: 2024-10-15 02:29:38
最近在本地开发环境中遇到一个MySQL崩溃的问题,数据库表空间的ID丢失了,ibd文件不知道怎么恢复。就想着用Mysqlbinlog工具从binlog里恢复数据试试,结果我登入docker的mysql镜像,找了他妈的半天,找不到mysqlbinlog工具。
死妈的Oracle从8.0.30开始移除了Mysqlbinlog工具和其他一系列工具
在网上一堆猛地搜索,英文版查到资料,马勒戈壁原来Laradock里使用的是来自Oracle官方出品的MySQL镜像文件。
从MySQL8.0.30开始,死妈的Oracle移除了一堆MySQL自带的工具。包括Mysqlbinlog,Mysqlcheck等。
我仔细瞅了一眼,mysql目录下只剩下mysqldump和mysqlpump,mysqladmin这三个玩意了,其他工具全部移除了。
Oracle,操你妈逼的,死妈玩意。
解决方法,把Docker镜像文件里的Mysql镜像源,改成Debian的
Debian源里的Mysql貌似还包括有Mysqlbinlog等一系列工具,可以改源为Debian源。
如果不想改也不会改的话,可以使用8.0.23等老版本的MySQL。
修改MySQL镜像为Debian源的方法
查看MySQL官方的Docker首页,https://hub.docker.com/_/mysql,里面有各种写法。
比如说最新的debian源写法是:8.0.31-debian。
把你镜像的env文件里的,mysql的版本号改成这个即可。
改完用docker compose up -d mysql直接编译加启动即可。
有些脚本,需要先删除mysql的镜像和容器,再编译脚本。
MySQL工具在镜像的位置
登录镜像后,cd /usr/bin
就可以看到熟悉的mysql工具了。
总结
千言万语汇聚成一句话,Oracle草泥马。
语言: zh-CN
翻译人员:
原作者:
转载地址:
源网址:
版权: 本站所有内容, 版权归原作者所有。发表原创内容将会获得现金奖励, 并且随着时间倍数增长, 请了解我们的内容奖励计划。