有可能从他们的文件中复制MySQL数据库吗?[我知道mysqldump是复制数据库的最佳方法,但这是不可能的,因为我们所拥有的只是mysql文件夹中的备份文件]。
我们有ibdata 1文件,ib_log* 文件,以及我们想要从备份文件中恢复的三个数据库的完整目录(文件夹似乎包含所有需要的frm和par文件)。显然已经尝试过只将所有文件复制到/var/lib/mysql中,尽管看起来结构是完整的,但访问数据的尝试是不成功的。
即show databases
将显示数据库,use dbname
工作,show tables
正确显示表,但当试图从[任何]表(通过查询)访问数据时,它说ERROR 1146(42 S 02):表'dbname.dbtable'不存在-尽管mysql很高兴地向我们显示了表,但当我们显示表时,表确实存在。
还应该指出的是,在复制文件和所有文件chown'ed有mysql作为所有者之前,服务被停止,然后在尝试访问数据之前,服务重新启动。
2条答案
按热度按时间jtw3ybtb1#
为了间接地回答你的问题,这里有一些关于使用原始文件副本设置复制的信息。所以我想答案可能是肯定的,但这可能取决于。
http://dev.mysql.com/doc/refman/5.0/en/replication-howto-rawdata.html
不希望增加您当前的痛苦,但你是不是依赖于一个备份,你从来没有尝试过/不知道如何恢复?
m1m5dgzv2#
实际上,我刚刚复制了/var/lib/mysql的内容,它可以工作。也许你需要尝试新版本的MySQL。我通常在docker中进行这些操作,以用于内部开发目的。