Article written

  • on 24.07.2008
  • at 02:02 PM
  • by loewez

WordPress 更改数据库表前缀后无法登录后台的解决办法 0

Jul24

今天花了几个小时来研究Wordpress数据库中的表格改名和备份问题。

建立这个Wordpress平台时用的wp-config.php文件是从另外一个Wordpress继承下来的,当时忘记了更改表名前缀,造成了两个Blog在数据库里的表格名字相同。虽然现在它们使用的是不同的数据库,但考虑到以后的转移和备份问题,还是改成不同前缀比较保险。

放狗搜索了一下,在我爱水煮鱼那里发现一篇不错的教程。

更改 WordPress 数据库表名前缀步骤:

禁用所有插件,然后通过 phpmyadmin 备份你的 WordPress 数据库。

用文本编辑器打开你备份的数据库文件(*.sql),查找“wp_”,并用你准备用的表明比如“Bssn_”替换。

使用 phpmyadmin 将你当前数据库 WordPress 表删除。

导入你刚才修改了的备份文件。

修改wp-config.php文件,将$table_prefix = ‘wp_’; 改为 $table_prefix = ’Bssn_’;

到后台开启所有插件。(如果备份之前没有禁用插件,可能会导致插件工作不正常,到插件管理重新开启即可。)

顺便提一下修改表名前缀的sql语句为:

ALTER TABLE wp_bssn RENAME TO bssn_bssn

此句将把 wp_bssn 表更名为 bssn_bssn。

我的Phpmyadmin导出数据库可以,但是试了很多次都不能导入,总是显示无效数据,放狗搜索也没找到解决办法。于是决定不导出直接在数据库里修改。

更改wordpress所有表格前缀的命令:

ALTER TABLE dz512_comments			RENAME TO blg_comments ;
ALTER TABLE dz512_links				RENAME TO blg_links ;
ALTER TABLE dz512_options			RENAME TO blg_options ;
ALTER TABLE dz512_postmeta			RENAME TO blg_postmeta ;
ALTER TABLE dz512_posts				RENAME TO blg_posts ;
ALTER TABLE dz512_terms				RENAME TO blg_terms ;
ALTER TABLE dz512_term_relationships	RENAME TO blg_term_relationships ;
ALTER TABLE dz512_term_taxonomy		RENAME TO blg_term_taxonomy ;
ALTER TABLE dz512_usermeta			RENAME TO blg_usermeta 	;
ALTER TABLE dz512_users				RENAME TO blg_users ;

ALTER TABLE dz512_Counterize			RENAME TO blg_Counterize;
ALTER TABLE dz512_Counterize_Keywords	RENAME TO blg_Counterize_Keywords;
ALTER TABLE dz512_Counterize_Pages		RENAME TO blg_Counterize_Pages;
ALTER TABLE dz512_Counterize_Referers	RENAME TO blg_Counterize_Referers;
ALTER TABLE dz512_Counterize_UserAgents	RENAME TO blg_Counterize_UserAgents;
ALTER TABLE dz512_ss_search			RENAME TO blg_ss_search;
ALTER TABLE dz512_ss_stats 			RENAME TO blg_ss_stats;

我的例子里是把原来的前缀”dz512_”改成”blg_”。上面的部分是Wordpress自身生成的表格,下面的部分是插件用到的表格。

执行这些sql语句后,所有表格的前缀就改好了,接下来修改wp-config.php文件里的表头前缀。做完这两步之后,blog显示正常,但是后台无法登录。这是因为还需要额外更改两处地方,在phpmyadmin里搜索旧前缀可以看到:

  • 一是blg_options 这个表格。在大约第七十条左右的地方,有一个”option_name”为”dz512_user_roles” 的项,需要更新前缀。图片 2.png

 

  • 二是blg_usermeta。这个表格存储了用户相关信息,需要把里面”meta_key”里所有旧前缀更新。

替换字段用到的命令:

update blg_usermeta set meta_key = replace(meta_key,’dz512_’,'blg_’)

(上面这条命令还可以在更改blog目录后用来修正 posts_meta 和 posts 表格里面论坛附件的地址。)

现在后台应该可以登录了。

相关主题

subscribe to comments RSS

There are no comments for this post

Please, feel free to post your own comment

* these are required fields

:xuexi: more »

::旅程:: is powered by WordPress and FREEmium Theme.
developed by Dariusz Siedlecki and brought to you by FreebiesDock.com