迁移的Joomla站点显示表不存在

时间:2013-01-04 23:17:31

标签: mysql joomla

我在我的机器上本地创建了一个joomla 2.5网站,我已经迁移到运行nginx,php和mysql的vps。这是我按顺序做的:

 1. Uploaded all the joomla files in the public_html
 2. Changed all the files permission to 644 and all the folders to 755
 3. Imported the database.sql to mysql using these commands: 

--> mysql> create database databasename;    
--> mysql> GRANT ALL PRIVILEGES ON
databasename.* TO username@localhost IDENTIFIED BY 'password';   
--> mysql> flush privileges;    
--> mysql> exit    
--> user@vps:~$ mysql -p -u username database_name < file.sql

我可以在数据库中查看我的所有表格,并更改了我的joomla configuration.php上的所有必需信息,但是当我打开我的网站时,我收到此错误:

Table 'databasename.s1t3j0s_session' doesn't exist SQL=INSERT INTO `s1t3j0s_session` (`session_id`, `client_id`, `time`) VALUES ('rh249ehb2tbsqkdff34v177d76', 0, '1357339991')

我哪弄错了?

我已将wordpress网站迁移到同一台服务器,没有任何错误。

4 个答案:

答案 0 :(得分:1)

我好几周都遇到了麻烦。我需要的是我系统上的备份副本。但是,当我将数据库从远程服务器上传到我的本地主机时,我收到了与会话表不存在的错误消息(您收到的错误相同)。

我尝试了有关删除和重新创建表格的所有提示,但这不起作用。

100%工作的唯一解决方案 - 我今天终于发现,是重新安装Joomla 2.5(我使用全新安装),然后执行以下操作:

而不是从包含正确内容的站点上传数据库,而是通过SQL文件本身(即在遇到问题之前导出上传的文件),并手动处理每个插入语句到SQL控制台直接(我正在使用PHPMyadmin)。换句话说,不要像往常那样尝试导入整个文件。要做到这一点只会导致错误。

出于某种原因,Joomla 2.5存在一个问题,即已经填充了数据的表被转储文件或替换(有时是重复的)数据替换。因此需要全新安装......

在单独处理每个安装语句之前(这可能需要一段时间 - 我花了大约一个半小时),浏览每个Joomla表并确保其中没有任何数据填充任何数据(因此,当您处理安装语句时,它们不会替换现有数据 - 因为您将从已填充的表中删除所有数据。)

只要您确保在迁移之前没有向表中添加INSERTED数据,这将解决您的问题。

所以总结一下: 1 /获得新的J2.5安装。 2 /从每个joomla表中删除所有popolated表数据。 3 /从包含正确数据的导出mysql文件中复制并粘贴每个插入语句。单独处理每个语句(这是可选的,但强烈建议:这样做可以让你在发生任何个别错误时对其进行反击和查明 - 无需查看整个mysql文件)

...转到您的网站:宾果 - 它应该有用!

答案 1 :(得分:1)

确保Joomla目录下$dbprefix中的configuration.php的值具有正确的值,方法是根据使用的实际数据库前缀(打开phpMyAdmin并选择要检查的Joomla数据库)此)。

答案 2 :(得分:0)

只需截断会话表中的数据,然后再次执行该过程。你没有什么可担心的截断,因为没有有价值的数据。会话表有时会弄乱东西。

在Unix上,表名区分大小写。在Windows上,它们不是。好玩,不是吗?有点像他们各自的文件系统。你认为这是巧合吗?

警告:它可能取决于表格类型;的MyISAM。

字段名称不区分大小写。

答案 3 :(得分:0)

我有这个问题, 在我的情况下,我通过cpanel导入数据库,稍后得到此错误消息。后来我发现通过cpanel导入数据库并没有导入表,只导入数据库名。所以我去了phpmyadmin并再次导入数据库,并解决了。