joomla在升级1.7以后加入了LOCK TABLES 机制,在后台操作一些编辑工作的时候会出现Access denied for user xxxxx SQL=LOCK TABLES xxx的相关提示。
如果主机是自己的,可以修改mysql的配置来进行权限分配解决这个问题。但大多数用户的主机都是租的虚拟空间,这个问题只能从“软件”入手了。我只想出了用去掉LOCK TABLES机制这个方法解决它。
解决方法:
找到\libraries\joomla\database\table.php文件,找到1401行 一直注释到1407行,即:
/*if ($this->_db->getErrorNum()) {
$this->setError($this->_db->getErrorMsg());
return false;
}
然后找到1421一直注释掉1432行,即:
/*// Unlock the table.
$this->_db->setQuery('UNLOCK TABLES');
$this->_db->query();
// Check for a database error.
if ($this->_db->getErrorNum()) {
$this->setError($this->_db->getErrorMsg());
return false;
}
$this->_locked = false;*/
保存后在进后台编辑就不会出现LOCK TABLES提示了,不过这么做存在一定风险,目前还不清楚。