复杂情况下:
从另一台机上把MySQL数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和 *** 作。经过如下几种情况的 *** 作。
1. 在本地重装MySQL(安装目录D:\Program Files\MySQL\MySQL Server 5.0),直接把mysql文件夹拷贝至D:\Program Files\MySQL\MySQL Server 5.0\。结果,失败:数据库连接错误。
2. 卸载后重装MySQL,将D:\Program Files\MySQL\MySQL Server 5.0\下的数据备份,只把mysql\data文件夹全部内容拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。
3. 卸载后重装MySQL,将mysql\data文件夹里的cf1,last文件夹(这两个是原来MySQL里的数据库)拷贝进D:\Program Files\MySQL\MySQL Server 5.0\data。连接成功,在Navicat for MySQL里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(3.4G大,明显存储了元数据)拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data里,代替原来的ibdata1文件。重启电脑,打开Navicat for MySQL,连接成功,数据可以访问 *** 作。
至此, *** 作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说MySQL失效了。
问题及原因:在mysql安装之后,数据库文件可能被系统隐藏,无法直接打开data文件夹。解决方案:
1.确定自己的mysql数据库的安装位置;
2.例如安装位置为C:\Program Files\MySQL\MySQL Server 5.1;
3.在里面有个的my.ini文件,打开该文件找到如下位置:
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.1/"
#Path to the database root
datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"
4.根据英文注释发现datadir就是data文件夹的位置。打开资源管理器直接访问该文件夹即可。
真正的data目录查找方法:
1、方法一:查找mysql.ini文件
搜索datadir关键词,发现原来路径配置和basedir不一致
datadir="C:/Documents
and
Settings/All
Users/Application
Data/MySQL/MySQL
Server
5.5/Data/"
2、方法二:sql语句
有一条语句可以查找到:
show
variables
like
'datadir'
原来真的没在安装目录下面,竟然在:
C:Documents
and
SettingsAll
UsersApplication
DataMySQLMySQL
Server
5.5data目录下面。
找到了真实的date目录,下面我们就要迁移过来了。
迁移方法:
1、先将MySQL服务停止
2、将之前的data目录复制到目标data文件夹中,覆盖之
3、重启MySQL服务即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)