从物理文件恢复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数据库服务器相同的版本来恢复在旧的数据库服务器中的一切。
-
从恢复的文件中创build另一个新的MySQL数据库服务器相同的版本
-
停止mysql服务器
-
复制恢复的文件夹并粘贴到(C:\ ProgramData \ MySQL \ MySQL Server 5.5 \ data)mysql数据库中。
-
复制位于linux mysql安装文件夹中的ibdata1文件,并将其粘贴到(C:\ ProgramData \ MySQL \ MySQL Server 5.5 \ data)中。 刚刚超过现有或更换之前进行备份。
-
启动mysql服务器并检查是否已成功恢复数据库文件。
-
要在我目前使用的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提取它们。