我最近意外地丢弃了我的整个数据库的Wordpress,但幸运的是我已经用Time Machine支持。
现在的问题是,当我将数据库文件复制回存储所有数据库的path,现在只有11个出现在PhPAdmin的28个表中显示我不知道为什么。
即使我已经仔细检查权限组和权限的一切都像其他数据库一样,但我仍然只能看到他们11。
事情是如果它不做任何我不介意,但现在我的WordPress的我不能login它说没有用户发现。
更多信息:
我试过在terminal上做ls ,看看是否所有的表都被复制了,我实际上可以看到它们全部在那里(28个表,包括一些文件,我不知道它是什么)。
我正在做我的数据库再次列出,我发现这里有什么问题。
-rw-------@ 8 _mysql admin 65 Apr 29 20:29 db.opt -rw-------@ 8 _mysql admin 8802 Apr 29 22:50 wp_amazonpin_articles_keys.frm -rw-------@ 8 _mysql admin 8726 Apr 29 22:50 wp_amazonpin_articles_links.frm -rw-------@ 8 _mysql admin 9239 Apr 29 22:50 wp_amazonpin_camps.frm -rw-------@ 8 _mysql admin 8568 Apr 29 22:50 wp_amazonpin_categories.frm -rw-------@ 8 _mysql admin 8596 Apr 29 22:50 wp_amazonpin_feeds_links.frm -rw-------@ 8 _mysql admin 8668 Apr 29 22:50 wp_amazonpin_feeds_list.frm -rw-------@ 8 _mysql admin 8712 Apr 29 22:50 wp_amazonpin_keywords.frm -rw-------@ 8 _mysql admin 8856 Apr 29 22:50 wp_amazonpin_links.frm -rw-------@ 8 _mysql admin 8680 Apr 29 22:50 wp_amazonpin_log.frm -rw-------@ 8 _mysql admin 8688 Apr 29 22:50 wp_commentmeta.frm -rw-------@ 8 _mysql admin 13380 Apr 29 22:50 wp_comments.frm -rw-------@ 8 _mysql admin 540 Apr 29 22:12 wp_links.MYD -rw-------@ 8 _mysql admin 3072 Apr 29 22:50 wp_links.MYI -rw-------@ 8 _mysql admin 13176 Apr 29 22:12 wp_links.frm -rw-------@ 8 _mysql admin 0 Apr 29 22:12 wp_maker.MYD -rw-------@ 8 _mysql admin 1024 Apr 29 22:12 wp_maker.MYI -rw-------@ 8 _mysql admin 8716 Apr 29 22:12 wp_maker.frm -rw-------@ 8 _mysql admin 6404 Apr 29 22:12 wp_option_tree.MYD -rw-------@ 8 _mysql admin 8192 Apr 29 22:50 wp_option_tree.MYI -rw-------@ 8 _mysql admin 8800 Apr 29 22:12 wp_option_tree.frm -rw-------@ 1 _mysql admin 2334552 Apr 30 06:23 wp_options.MYD -rw-------@ 1 _mysql admin 318464 Apr 30 06:23 wp_options.MYI -rw-------@ 8 _mysql admin 8734 Apr 29 22:12 wp_options.frm -rw-------@ 8 _mysql admin 8682 Apr 29 22:50 wp_postmeta.frm -rw-rw----@ 2 _mysql admin 26169304 Apr 30 06:02 wp_posts.MYD -rw-rw----@ 2 _mysql admin 55496704 Apr 30 06:02 wp_posts.MYI -rw-rw----@ 7 _mysql admin 13684 Apr 30 01:14 wp_posts.frm -rw-------@ 2 _mysql admin 198896 Apr 30 05:55 wp_stt2_meta.MYD -rw-------@ 2 _mysql admin 475136 Apr 30 05:55 wp_stt2_meta.MYI -rw-------@ 8 _mysql admin 8698 Apr 29 22:12 wp_stt2_meta.frm -rw-------@ 8 _mysql admin 8666 Apr 29 22:50 wp_term_relationships.frm -rw-------@ 8 _mysql admin 8768 Apr 29 22:50 wp_term_taxonomy.frm -rw-------@ 8 _mysql admin 8668 Apr 29 22:50 wp_terms.frm -rw-------@ 8 _mysql admin 8684 Apr 29 22:50 wp_usermeta.frm -rw-------@ 8 _mysql admin 8968 Apr 29 22:50 wp_users.frm -rw-------@ 8 _mysql admin 0 Apr 29 22:12 wp_visitor_maps_ge.MYD -rw-------@ 8 _mysql admin 1024 Apr 29 22:12 wp_visitor_maps_ge.MYI -rw-------@ 8 _mysql admin 8628 Apr 29 22:12 wp_visitor_maps_ge.frm -rw-------@ 8 _mysql admin 84 Apr 29 22:12 wp_visitor_maps_st.MYD -rw-------@ 8 _mysql admin 2048 Apr 29 22:50 wp_visitor_maps_st.MYI -rw-------@ 8 _mysql admin 8622 Apr 29 22:12 wp_visitor_maps_st.frm -rw-------@ 8 _mysql admin 160612 Apr 29 22:12 wp_visitor_maps_wo.MYD -rw-------@ 8 _mysql admin 17408 Apr 29 22:50 wp_visitor_maps_wo.MYI -rw-------@ 8 _mysql admin 9408 Apr 29 22:12 wp_visitor_maps_wo.frm -rw-------@ 8 _mysql admin 0 Apr 29 22:12 wp_wpseon_syndacc.MYD -rw-------@ 8 _mysql admin 1024 Apr 29 22:50 wp_wpseon_syndacc.MYI -rw-------@ 8 _mysql admin 12901 Apr 29 22:12 wp_wpseon_syndacc.frm -rw-------@ 4 _mysql admin 34032 Apr 30 05:10 wp_wpseon_visits.MYD -rw-------@ 3 _mysql admin 4096 Apr 30 06:16 wp_wpseon_visits.MYI -rw-------@ 8 _mysql admin 9085 Apr 29 22:12 wp_wpseon_visits.frm
从上面的列表中可以看出,在我的phpadmin中显示的是MYD MYI和frm ,其中有11个表格显示,其余的都没有显示。
我不知道为什么这是真的发生?
这对您来说可能不是很有帮助,但是备份数据库的正确方法是使用实用程序将其转储(以序列化的forms)并保存。 然后,当您需要恢复它时,您可以简单地清空数据库,然后导入您的转储。 某些软件允许您从其Web界面创build数据库备份,也可以使用mysqldump实用程序。
通过保存实际的数据库文件来进行备份会遇到的问题是,它们是一个黑盒子。 你对他们几乎没有保证。 例如,DBMS(mysql)可能会将一些内容存储在内存中,并等待将其刷新到磁盘上以备记忆。 这意味着,当你这样做的时候,即使假设你得到了所有的文件,并且把它们正确地复制了回来,并且DBMS碰巧接受了它们,如果除了完整地返回数据目录,它们可能处于不一致的状态mysql守护进程没有运行。
但是,请检查mysql是否具有表格文件的权限。 例如,如果您正在使用MyISAM,请检查是否存在tablename.frm , tablename.MYD和tablename.MYI 。 如果你正在使用innodb,那么还有一个名为ibdata1的文件,另一个名为db.opt文件存储了一部分表定义。
一般来说,如果你打算做一个二进制恢复,这是一种不得已而为之的事情,你不只是恢复一些数据目录; 您停止mysql守护进程,重命名现有数据目录,并在重新启动守护进程之前将整个备份目录复制到位。 试图对一些表进行二进制还原时,会产生未定义的结果,包括但不限于您遇到的情况。