从物理文件恢复MySQL数据库

是否有可能从物理数据库文件恢复MySQL数据库。 我有一个目录具有以下文件types:

client.frm
client.MYD
client.MYI

但约20多桌。

我通常使用mysqldump或类似的工具来获取1个SQL文件中的所有内容,那么处理这些types的文件的方式是什么?

MySQL MyISAM表是三个文件的组合:

  • FRM文件是表定义。
  • MYD文件是存储实际数据的地方。
  • MYI文件是存储在表上创build的索引的位置。

你应该能够通过将它们复制到你的数据库文件夹中进行恢复(在linux中,默认位置是/var/lib/mysql/

你应该在服务器没有运行的时候这样做。

我有同样的问题,但没有成功地恢复数据库根据上面的说明。

我只从我的Ubuntu操作系统恢复mysql数据库文件夹。 我的问题是如何恢复我的数据库与那些不可读的MySQL数据文件夹。 现在我回到开发环境的win7操作系统。

*注意我有一个现有的数据库服务器运行在win7中,我只需要几个数据库文件从恢复的文件检索。 要成功从Ubuntu操作系统恢复数据库文件,我需要在我的Win7操作系统中从Ubuntu操作系统新鲜安装的MySQL数据库服务器相同的版本来恢复在旧的数据库服务器中的一切。

  1. 从恢复的文件中创build另一个新的MySQL数据库服务器相同的版本

  2. 停止mysql服务器

  3. 复制恢复的文件夹并粘贴到(C:\ ProgramData \ MySQL \ MySQL Server 5.5 \ data)mysql数据库中。

  4. 复制位于linux mysql安装文件夹中的ibdata1文件,并将其粘贴到(C:\ ProgramData \ MySQL \ MySQL Server 5.5 \ data)中。 刚刚超过现有或更换之前进行备份。

  5. 启动mysql服务器并检查是否已成功恢复数据库文件。

  6. 要在我目前使用的mysql服务器中使用恢复的数据库,只需导出恢复的数据库并将其导入到我现有的mysql服务器。

希望这些会有所帮助,因为我没有find解决我的问题。

如果你正在恢复该文件夹,不要忘记将文件chown到mysql:mysql

chown -R mysql:mysql /var/lib/mysql-data

否则在尝试删除数据库或添加新列时会出错。

并重新启动MySQL

 service mysql restart 

从@Vicent的答案,我已经恢复MySQL数据库如下:

第1步。closuresMysql服务器

第2步。将数据库复制到数据库文件夹(在Linux中,默认位置是/ var / lib / mysql)。 保持数据库名称相同,并在mysql模式下保持数据库名称相同。

 sudo cp -rf /mnt/ubuntu_426/var/lib/mysql/database1 /var/lib/mysql/ 

第三步:改变自己并改变模式的文件夹:

 sudo chown -R mysql:mysql /var/lib/mysql/database1 sudo chmod -R 660 /var/lib/mysql/database1 sudo chown mysql:mysql /var/lib/mysql/database1 sudo chmod 700 /var/lib/mysql/database1 

步骤4:将ibdata1复制到数据库文件夹中

 sudo cp /mnt/ubuntu_426/var/lib/mysql/ibdata1 /var/lib/mysql/ sudo chown mysql:mysql /var/lib/mysql/ibdata1 

第5步:将ib_logfile0和ib_logfile1文件复制到数据库文件夹中。

 sudo cp /mnt/ubuntu_426/var/lib/mysql/ib_logfile0 /var/lib/mysql/ sudo cp /mnt/ubuntu_426/var/lib/mysql/ib_logfile1 /var/lib/mysql/ 

记住改变自己并改变这些文件的根目录:

 sudo chown -R mysql:mysql /var/lib/mysql/ib_logfile0 sudo chown -R mysql:mysql /var/lib/mysql/ib_logfile1 

要么

 sudo chown -R mysql.mysql /var/lib/mysql 

第6步(可选):我的网站configuration文件存储在一个特定的位置,然后我将它们复制到相应的位置,确切地说。

第7步:启动你的Mysql服务器。 一切都回来,享受它。

那是。

详情请参阅: https : //biolinh.wordpress.com/2017/04/01/restoring-mysql-database-from-physical-files-debianubuntu/

用MySql 5.1(Win7)。 要重新创build数据库(InnoDbs),我已经replace了以下所有目录(my.ini params)的内容:

 datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/" innodb_data_home_dir="C:/MySQL Datafiles/" 

之后,我启动了MySql服务,所有工作正常。

是的! 只需将它们添加到您的数据库文件夹(取决于操作系统),并运行一个命令,如“MySQL修复权限”。 这重新存储数据库。 也可以看到,文件上也设置了正确的权限。

我曾经将这些文件复制到正在工作的mysql数据库的数据库存储文件夹,启动数据库,并等待它来“修复”文件,然后用mysqldump提取它们。