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

客户。frm
客户。MYD
客户。MYI

但是对于约20多个表中。

我通常使用快照或类似工具,以获得一切都在1SQL文件以什么方式来处理这些类型的文件?

有帮助吗?

解决方案

MySQL些表是综合三个文件:

  • FRM文件表中的定义。
  • MYD文件是在实际数据存储。
  • MYI文件是在创建的索引表上的存储。

你应该能够恢复通过复制他们在你的数据库文件夹(在linux的,默认的位置是 /var/lib/mysql/)

你应该做到这一点,而该服务器没有运行。

其他提示

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

步骤1.关闭MySQL服务器

步骤2.在数据库中的文件夹复制数据库(在Linux中,默认位置是/ var / lib中/ MySQL的)。保持数据库的相同名称和数据库的相同的名称在MySQL模式。

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

步骤3:更改自己和改变模式的文件夹:

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(可选):我的网站具有配置为存储在一个特定位置中的文件,然后我复制这些相应的位置,恰好

步骤7:启动MySQL服务器。一切都回来了,并享受它。

这是它。

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

我有同样的问题,但是没有成功地恢复的数据库中根据该说明所述。

我只得到了恢复数据库的文件夹,从我Ubuntu的操作系统。我的问题是如何恢复我的数据库与那些无法读取mysql数据文件夹。我现在切换回windows7资OS用于发展的环境。

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

  1. 让另一个新的数据库服务器相同的版本 恢复的文件。

  2. 停止mysql server

  3. 复制的回收文件夹和粘贴在 (C:\ProgramData\MySQL\MySQL Server5.5\数据)的数据库是 存储。

  4. 复制ibdata1文件在linux mysql安装和文件夹 它贴在(C:\ProgramData\MySQL\MySQL Server5.5\数据)。仅仅过了 权利的现有或制作备份之前替换。

  5. 开始mysql server和检查,如果你已经成功地恢复 该数据库文件。

  6. 使用恢复的数据库在我目前使用的mysql server 简单地出口恢复的数据库,并将其导入现有的mysql 服务器。

希望这些将会帮助,因为我没有找到一个解决我的问题。

如果您要恢复的文件夹,不要忘记将文件执行chown到MySQL:MySQL的搜索结果chown -R mysql:mysql /var/lib/mysql-data搜索结果,否则试图删除数据库或添加新的列时,你会得到错误等..

和重启MySQL

service mysql restart

与MySQL 5.1(Win7的)。要重新创建的DB(InnoDbs)我已经更换了以下显示目录(的my.ini PARAMS)的全部内容:

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

在我开始MySQL服务和一切工作正常。

是的!只需将它们添加到你的数据库文件夹(视操作系统而定),并运行一个命令,如“MySQL的修复权限”。这将重新存储数据库。看得太认为正确的权限在文件藏汉设置。

我复制一次这些文件,以用于将其工作的一个MySQL数据库的数据库存储文件夹,开始了db和等待它为“修复”的文件,然后使用mysqldump萃取它们。

在我的情况下,简单地移除tc.log在/ var / lib中/ MySQL的是足以启动MariaDB的/ MySQL的试。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top