原因:周末在家,边看电视边修改数据,脑子秀逗了,不小心把本地mysql某个数据库全部删除,由于我本地独一份最新版本,因此开启了漫漫找寻之路。
思路:找到binlog日志,使用mysqlbinlog命令恢复数据
1.本地尝试登入使用mysqlbinlog命令报错且控制台登入mysql报错“zsh:command not found:mysql”
解决方案:我选择卸载重新安装(注:先备份好/data目录文件)
备份/data目录文件(mysql默认安装目录为 /usr/local/mysql/)
1.1: 第一种方式可视化卸载(打开系统偏好设置—> 点击mysql —> 点击uninstall)
1.2:第二种方式控制台命令行卸载mysql
cd ~/sudo rm /usr/local/mysqlsudo rm -rf /usr/local/var/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf /Library/StartupItems/MySQLCOMsudo rm -rf /Library/PreferencePanes/My*vim /etc/hostconfig and removed the line MYSQLCOM=-YES-rm -rf ~/Library/PreferencePanes/My*sudo rm -rf /Library/Receipts/mysql*sudo rm -rf /Library/Receipts/MySQL*sudo rm -rf /var/db/receipts/com.mysql.*
1.3安装mysql
1.3.1社区地址:https://dev.mysql.com/downloads/mysql/
注释:下载得很慢要耐心等待,下载完成后一直点击下一步即可完成安装
安装mysql参考文档:https://www.jianshu.com/p/199492627ccc
1.3.2使用 mysql -uroot -p 可登入即为安装成功
1.4使用替换数据库./data目录
遇到问题:替换之后是用navicat连接查询不到替换后./data中数据库
原因:./data目录下存放结构和数据的文件夹没有赋予权限
给mysql授权访问data下的文件,完成后即可看见之前mysql中的数据库
cd /usr/local/mysql-5.7.24-macos10.14-x86_64
sudo chown -R mysql:mysql data
1.5使用binlog日志文件恢复数据
注释:需要运行创建文件日至删除日的所有binlog文件,这样数据才能完整,由于本地数据库刚从生产备份的数据库结构及数据,所以此次我这里只需要运行一个binlog日志即可
1.5.1需改./data目录权限及修改允许binlog日志文件权限
请右击–>显示简介–>右下角的小锁点开修改权限
把everyone 的权限改成读写 但记得最后要改回来
1.5.2使用控制台进入/data目录下运行binlog命令
注:binlog.000074 为需要运行的binlog日志名称
–start-position 是指定从该二进制日志事件文件的哪个位置开始
–stop-postion 是指定运行到该二进制日志事件文件的哪个位置结束
catalog为恢复数据库名称
该命令在日志文件目录下运行,而不是在mysql内运行
mysqlbinglog binlog.000074 --start-position 154 --stop-postion 755 |mysql-uroot -p catalog
查找binlog日志的办法:
参考文档:
mac 卸载mysql_Mac 电脑卸载mysql数据库:https://blog.csdn.net/weixin_39573136/article/details/111848864
mac下 mysql data文件下的数据库恢复:https://blog.csdn.net/qq_26093363/article/details/85337878
MySQL使用binlog日志做数据恢复:https://blog.csdn.net/king_kgh/article/details/74890381