跳转到主要内容
stefen 提交于 21 April 2012

这是网上能够查到的原因及解决办法:

“drupal7 导入翻译出错 An AJAX HTTP error occurred 

解决方法

打开\sites\default\settings.php文件,在最后增加以下两行:

ini_set('memory_limit', '1280M'); //加大php的内存 也可以在php.ini中设置 ini_set('max_execution_time', 200); //加大页面执行时间 php.ini中的默认值是30 (秒)”

也有的人说即使改成3600秒也还是出错,我也发现我怎么改这个值都不行。

我本地安装的是xampp最新版,运行平台是win7 64和win2008 R2,曾经查询修改mysql进程时间设定有效过。

现在发现问题根结所在(也可能是我个例,但如果你碰到了一样的问题,而你的数据库默认引擎也是innodb,那就很有可能是这个原因)。

最新版的xampp安装好之后,mysql默认引擎为Innodb,而且Innodb设置参数的innodb_flush_log_at_trx_commit 值是1。这个值可以取0,1,2,1是最安全的,即使系统完全崩溃也能找回前一秒钟的数据,但也是性能最低的,每秒都要向硬盘写日志数据。设为2是比较适中的。有关Innodb引擎更多优化请查询百度。

(mysql引擎设定可以在phpmyadmin的【引擎】链接或【更多】-【引擎】里查看,一般默认不是Myisam就是innoDB,点击这两个名字进去就可以查看具体参数设定及是否为默认引擎。如果你的引擎默认是InnoDB就很有优化的必要。设定参数在mysql\bin\my.ini 文件中)

我发现我的本地测试引起超时的错误根结所在不是程序设定时间超时太短……我硬件配置不低,又是本地操作没有网络延时问题,默认设定时间还不够,说明程序运行速度得多慢啊…………网站运行速度也不够快的……

其实就是innodb_flush_log_at_trx_commit 设为1 的问题,只要mysql\bin\my.ini中的innodb_flush_log_at_trx_commit = 2     重启mysql进程就可以了。(只读不能改请先停止mysql,或另存-删除原文件-改名)   再安装时导入翻译时间就是几秒钟的速度~~!

如果是虚拟空间已经装好的drupal,innodb的设定还是1自己还没有改的权限,你的表由于是其他地方导入进来的用的innodb引擎觉得慢,就不如把一些表转成Myisam引擎了。Myisam引擎表在少于一定数据量情况下比innodb快。但Myisam有不如innobd安全和超大数据量时没有innodb快的缺点,请定期备份。

还有一些关于虚拟主机空间的数据库备份导入经验分享给大家:

有些虚拟主机提供商后台有些非常人性化的功能设定,一键备份、导入导出、清空mysql数据库等功能。但是好多赠送mysql的主机是没有创建删除数据库的权限的。

而又是数据库引擎的问题。

如果是Myisam引擎数据表,除了导入导出***.sql文件外,还有一种非常简便的导入导出方法,就是在mysql\data\数据库名   路径下,所有的文件就是你的数据表了。完全复制粘贴这个数据库名的文件夹就能备份,导入数据库,十分方便。虚拟主机提供的一键备份导入导出清空也是基于这个原理。

但是前提是你的数据表是Myisam引擎的。进入这个mysql\data\数据库名  的文件夹内,每个以表名开头的文件有三个,表.frm、表.MYD、表.MYI。如果你成功拿出了这三个文件,那你的表数据就完全到手了。如果你只看到了.frm文件,那恭喜你中奖了,你的表使用的是后现代的innodb引擎,没有被人所诟病的mysql高速不安全的缺陷。但也不适合这种快速拷贝文件的备份方式了。

innodb类型的表,除了一个 表.frm文件外,数据全都存放在了mysql\data\ibdata1 文件里,不论哪个数据库的哪个表。

所以如果你的表是innodb引擎的,而你又图方便用了虚拟主机面板提供的一键清空数据表,那你就几乎无法再倒入同名的数据表了…… 因为你只删除了.frm文件,而数据文件还存在于虚拟主机数据库的ibdata1文件里。如果出现了这种情况,还想用同名的表,也不想让ibdata1文件占用浪费数据库空间就只能联系客服删除数据库重新建立了。

innodb引擎的表似乎最好用导出.sql数据表的功能来备份,用数据库控制台或操控软件phpmyadmin等删除所有表的方法来清空。

(虚拟主机提供商的程序版本都不一定是最新的,mysql引擎默认也大都设定为Myisam,所以对于在这种虚拟空间上直接上传drupal程序而在线安装的站点,新生成的数据表引擎肯定是Myisam,用他们提供的一键备份清空功能肯定没问题,这种引擎够快也不会造成超时的问题,但如果是你在本地或其他地方测试好的程序,例如我这样自己装xampp,那导出的表是什么引擎就是什么引擎了,导入进虚拟主机也是一样。当然这个引擎可以手动转换,取决于你的选择。虚拟主机也支持各种引擎只是默认设定——新建数据表默认选定的引擎不一样而已。)

使用wamp也是遇到同样问题,参考以上办法已完美解决---

‘’其实就是innodb_flush_log_at_trx_commit 设为1 的问题,只要mysql\bin\my.ini中的innodb_flush_log_at_trx_commit = 2     重启mysql进程就可以了。(只读不能改请先停止mysql,或另存-删除原文件-改名)   再安装时导入翻译时间就是几秒钟的速度~~!“

确实是一晃而过,yes