mysql的数据库文件在哪里-分系统查询,数据文件与配置文件路径各有不同

mysql的数据库文件在哪里-分系统查询,数据文件与配置文件路径各有不同

很多人折腾本地数据库备份、迁移的时候,最先卡壳的问题就是mysql的数据库文件在哪里,网上零散的路径说法五花八门,试过好几次出错后,才摸清楚不同操作系统、不同安装方式对应的真实文件位置。之前一直以为所有mysql文件都统一存在固定文件夹里,每次找文件都凭感觉翻目录,要么找错缓存文件,要么找到空文件夹,白白浪费不少调试时间。

Windows系统下,解压版和安装版的存放路径完全不一样,这是最容易搞混的点。安装版的MySQL,默认数据文件会藏在系统隐藏目录里,具体是C:\ProgramData\MySQL\MySQL Server X.X\Data,这个ProgramData文件夹平时默认是隐藏的,不开启文件夹可见性根本找不到。之前没注意这点,反复去安装根目录找data文件夹,翻遍所有子文件夹都只有程序启动文件,没有任何数据库的数据文件。

打开这个隐藏的data文件夹后,能直观看到所有创建的数据库文件夹,每个数据库独立成一个目录,里面存放着frm、ibd格式的文件,这些就是实打实的数据表结构和数据存储文件。如果是自己手动解压的绿色版MySQL,数据文件路径是自定义的,不会有统一默认地址,只能通过配置文件my.ini查看,打开文件后找到datadir字段,后面标注的路径就是真实的数据文件位置。

Linux服务器环境的MySQL文件位置,比Windows规整很多,几乎所有主流服务器安装的MySQL,数据文件默认都在/var/lib/mysql目录下。前段时间给服务器迁移数据库,直接打包这个目录的所有文件,替换新服务器同路径下的文件,重启服务后所有数据、数据表、配置全部完好保留,没有出现数据丢失的情况。

不要手动直接修改这个文件夹里的文件,这是实操里踩过最实在的雷。曾经试着直接复制替换ibd数据文件,没有关闭MySQL服务,结果直接导致数据库表损坏,无法正常读写,最后只能重置数据表修复,丢失了部分测试数据。后来才反应过来,运行状态下的MySQL会持续读写文件,强行改动会造成文件结构错乱。

Mac电脑的MySQL数据路径,和Linux有细微区别,默认存储在/usr/local/mysql/data中。这个路径需要通过访达前往文件夹才能打开,普通文件夹浏览找不到该目录。之前帮同事排查数据库文件丢失问题,就是因为他误删了这个目录下的日志文件,导致MySQL服务启动异常,单纯删除数据文件以外的日志文件,也会影响数据库正常运行。

想要精准定位,不用死记硬背系统路径,有一个通用的万能操作。直接登录MySQL命令行,输入show variables like 'datadir';,执行指令后跳出的路径,就是当前设备百分百准确的数据库文件存放位置,不管是什么系统、什么安装方式,这个查询结果永远不会出错。

每次需要迁移、备份数据库文件前,都会先执行这条指令确认路径,再停止MySQL服务,最后复制对应目录下的文件,整套操作下来从来没有出现过数据异常的问题。刚刚调试完本地Windows数据库,最后一步就是复制查询到的datadir路径文件夹,完整备份到移动硬盘里。

了解更多百科知识请访问 百科