是否可以从物理数据库文件中恢复MySQL数据库.我有一个具有以下文件类型的目录:
client.frm
client.MYD
client.MYI
但是还有大约20张桌子.
我通常使用mysqldump或类似工具来获取1个SQL文件中的所有内容,那么处理这些类型文件的方法是什么?
MySQL MyISAM表是三个文件的组合:
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/
如果要还原文件夹,请不要忘记将文件chown到mysql:mysql,chown -R mysql:mysql /var/lib/mysql-data
否则在尝试删除数据库或添加新列等时会出现错误.
并重启MySQL
service mysql restart
我有同样的问题,但没有根据上面的说明成功恢复数据库.
我只从我的Ubuntu操作系统中恢复了mysql数据库文件夹.我的问题是如何使用那些不可读的mysql数据文件夹恢复我的数据库.现在我切换回win7 OS用于开发环境.
*注意我有一个在win7中运行的现有数据库服务器,我只需要很少的数据库文件来从恢复的文件中检索.要从Ubuntu OS成功恢复数据库文件,我需要在我的win7操作系统中从Ubuntu OS新安装的新安装的mysql数据库服务器相同版本,以恢复旧数据库服务器中的所有内容.
从恢复的文件中创建另一个新的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服务器.
希望这些会有所帮助,因为我找不到解决问题的方法.