是否可以从物理数据库文件还原MySQL数据库。我的目录具有以下文件类型:
client.frm
client.MYD
client.MYI
但要多出约20张桌子。
我通常使用mysqldump或类似的工具在1个SQL文件中获取所有内容,那么如何处理这些类型的文件呢?
是否可以从物理数据库文件还原MySQL数据库。我的目录具有以下文件类型:
client.frm
client.MYD
client.MYI
但要多出约20张桌子。
我通常使用mysqldump或类似的工具在1个SQL文件中获取所有内容,那么如何处理这些类型的文件呢?
Answers:
MySQL MyISAM表是三个文件的组合:
您应该可以通过将它们复制到数据库文件夹中来进行还原(在linux中,默认位置为/var/lib/mysql/
)
您应该在服务器未运行时执行此操作。
mysql
运行该mysqld
进程的用户无法访问它们。做一个chmod -R mysql:mysql .
对MySQL数据目录是快速和容易的,但搞清楚,在此之前,为什么所有我resoterd DB中似乎没有任何表花了更长的时间。
chown
像这样复制文件:sudo chown -R mysql:mysql /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/
如果要还原文件夹,请不要忘记将文件整理到mysql:mysql,chown -R mysql:mysql /var/lib/mysql-data
否则在尝试删除数据库或添加新列等时会出现错误。
然后重启MySQL
service mysql restart
根据上述说明,我遇到了同样的问题,但无法成功恢复数据库。
我只能从Ubuntu OS恢复mysql数据库文件夹。我的问题是如何使用那些无法读取的mysql数据文件夹恢复数据库。因此,我切换回用于开发环境的win7 OS。
*注意:我有一个运行在win7中的现有数据库服务器,我只需要很少的数据库文件即可从恢复的文件中检索。为了从Ubuntu OS成功恢复数据库文件,我需要重新安装mysql数据库服务器(与Win7 OS中Ubuntu OS的相同版本),以恢复该旧数据库服务器中的所有内容。
从恢复的文件中使另一个新的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服务器中即可。
希望这些对您有所帮助,因为没有别的方法对我有用。
使用MySql 5.1(Win7)。要重新创建数据库(InnoDbs),我替换了以下目录(my.ini参数)的所有内容:
datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"
innodb_data_home_dir="C:/MySQL Datafiles/"
之后,我启动了MySql Service,并且一切正常。
是的!只需将它们添加到数据库文件夹(取决于OS),然后运行诸如“ MySQL Fix Permissions”之类的命令。这样就重新存储了数据库。也可以看到还对文件设置了正确的权限。