Magento 错误 SQLSTATE[23000]: 1062 Duplicate entry log_visitor_info

Posted

技术标签:

【中文标题】Magento 错误 SQLSTATE[23000]: 1062 Duplicate entry log_visitor_info【英文标题】:Magento Error SQLSTATE[23000]: 1062 Duplicate entry log_visitor_info 【发布时间】:2017-06-22 12:16:30 【问题描述】:

我正在尝试使用 MAMP 在本地设置 Magento 网站,但现在每次尝试时都会遇到一个反复出现的问题。使用 phpMyAdmin(默认配置)导出数据库并使用 MAMP 4 重新导入 PHPMyAdmin(默认配置)。

我更新站点 URL,清除缓存等

当我第一次加载网站时,一切似乎都正确导入并正常工作。但是,当我通过单击链接或重新加载同一页面来加载任何其他页面时,我收到以下错误。

错误

XXXXXX = 代表我的本地开发路径,出于客户隐私考虑已将其删除。

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 'PRIMARY', query was: INSERT INTO `log_visitor_info` (`visitor_id`, `http_referer`, `http_user_agent`, `http_accept_charset`, `http_accept_language`, `server_addr`, `remote_addr`) VALUES (?, ?, ?, ?, ?, ?, ?)

Trace:
#0 /XXXXXXX/lib/Varien/Db/Statement/Pdo/mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#1 /XXXXXXX/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#2 /XXXXXXX/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)
#3 /XXXXXXX/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `na...', Array)
#4 /XXXXXXX/lib/Varien/Db/Adapter/Pdo/Mysql.php(504): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `na...', Array)
#5 /XXXXXXX/lib/Zend/Db/Adapter/Abstract.php(576): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `na...', Array)
#6 /XXXXXXX/app/code/core/Mage/Log/Model/Resource/Visitor.php(203): Zend_Db_Adapter_Abstract->insert('l...', Array)
#7 /XXXXXXX/app/code/core/Mage/Log/Model/Resource/Visitor.php(129): Mage_Log_Model_Resource_Visitor->_saveVisitorInfo(Object(Mage_Log_Model_Visitor))
#8 /XXXXXXX/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(463): Mage_Log_Model_Resource_Visitor->_afterSave(Object(Mage_Log_Model_Visitor))
#9 /XXXXXXX/app/code/core/Mage/Core/Model/Abstract.php(318): Mage_Core_Model_Resource_Db_Abstract->save(Object(Mage_Log_Model_Visitor))
#10 /XXXXXXX/app/code/core/Mage/Log/Model/Visitor.php(198): Mage_Core_Model_Abstract->save()
#11 /XXXXXXX/app/code/core/Mage/Core/Model/App.php(1358): Mage_Log_Model_Visitor->initByRequest(Object(Varien_Event_Observer))
#12 /XXXXXXX/app/code/core/Mage/Core/Model/App.php(1337): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Log_Model_Visitor), 'initByRequest', Object(Varien_Event_Observer))
#13 /XXXXXXX/app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('controller_acti...', Array)
#14 /XXXXXXX/app/code/core/Mage/Core/Controller/Varien/Action.php(527): Mage::dispatchEvent('controller_acti...', Array)
#15 /XXXXXXX/app/code/core/Mage/Core/Controller/Front/Action.php(69): Mage_Core_Controller_Varien_Action->preDispatch()
#16 /XXXXXXX/app/code/core/Mage/Core/Controller/Varien/Action.php(407): Mage_Core_Controller_Front_Action->preDispatch()
#17 /XXXXXXX/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('index')
#18 /XXXXXXX/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#19 /XXXXXXX/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#20 /XXXXXXX/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#21 /XXXXXXX/index.php(83): Mage::run('', 'store')
#22 main

Error log record number: 1181609270934

我尝试过的事情...

1) 截断访问者表:

TRUNCATE log_customer;
TRUNCATE log_quote;
TRUNCATE log_summary;
TRUNCATE log_summary_type;
TRUNCATE log_url;
TRUNCATE log_url_info;
TRUNCATE log_visitor;
TRUNCATE log_visitor_info;
TRUNCATE log_visitor_online;

这仅解决了初始页面加载的问题,一旦我访问另一个页面,同样的问题就会返回。

2) 使用 app/etc/local.xml 禁用本地模块

3) 清除缓存、会话数据

其他信息:

管理区域工作正常 Magento 版本。 1.9.2.4 MAMP 版本 4.0.6 (372)

显示创建表

-- phpMyAdmin SQL Dump
-- version 4.6.4
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3306
-- Generation Time: Feb 05, 2017 at 03:36 PM
-- Server version: 5.6.33
-- PHP Version: 5.6.27

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

--
-- Database: `XXXXXXX`
--

-- --------------------------------------------------------

--
-- Table structure for table `log_visitor_info`
--

CREATE TABLE `log_visitor_info` (
`visitor_id` bigint(20) UNSIGNED NOT NULL DEFAULT '2' COMMENT 'Visitor ID',
`http_referer` varchar(255) DEFAULT NULL COMMENT 'HTTP Referrer',
`http_user_agent` varchar(255) DEFAULT NULL COMMENT 'HTTP User-Agent',
`http_accept_charset` varchar(255) DEFAULT NULL COMMENT 'HTTP Accept-Charset',
`http_accept_language` varchar(255) DEFAULT NULL COMMENT 'HTTP Accept-Language',
`server_addr` varbinary(16) DEFAULT NULL,
`remote_addr` varbinary(16) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `log_visitor_info`
--

INSERT INTO `log_visitor_info` (`visitor_id`, `http_referer`,    `http_user_agent`, `http_accept_charset`, `http_accept_language`, `server_addr`,   `remote_addr`) VALUES
(0, NULL, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:50.0) Gecko/20100101 Firefox/50.0', NULL, 'en-US,en;q=0.5', 0x7f000001, 0x7f000001);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `log_visitor_info`
--
ALTER TABLE `log_visitor_info`
ADD PRIMARY KEY (`visitor_id`);

【问题讨论】:

请使用 phpMyAdmin 或其他一些 MySQL 客户端在出现故障的系统上发出命令 SHOW CREATE TABLE log_visitor_info;。那是您的错误消息标识的表。请edit您的问题向我们展示该表的完整定义,因为它目前在您的服务器上。 谢谢 O. Jones,我已经编辑了我的问题。这就是你的意思吗? visitor_id 列未针对 AUTO_INCREMENT 进行操纵。也许熟悉 magento 模式的人知道它是否是这样设计的。 我以前在从 MySQL 导出时遇到过这个问题,如果您以兼容模式导出,它不会导出 auto_increment 标志。要么创建它们(可能有很多) - 要么进行新的导出。 感谢您的帮助道格拉斯。是的,这个固定的问题。为了帮助别人。我使用 plesk(不是 phpMyAdmin)导出了我的数据库转储,然后使用设置重新导入 SQL Compatability = NoneDo not use Auto-increment for Zero values = checked 【参考方案1】:

我刚刚在我的最新项目中遇到了这个问题,我使用 phpmyadmin 导入 sql 并将兼容性设置为 None 并将 xero 值的自动增量设置为检查来解决它。

【讨论】:

【参考方案2】:

我遇到了同样的问题。为了解决我的问题,我连接到 phpmyadmin。

我在数据库中选择了指定的表,我使用了mysql工具“分析”、“验证”和“修复”。

这对我有用,希望对你有帮助。

【讨论】:

【参考方案3】:

问题已解决

    auto-increment 在该表 (log_visitor_info) 的 primary-key 上被禁用。 将default 更改为noneattributes 更改为empty

【讨论】:

以上是关于Magento 错误 SQLSTATE[23000]: 1062 Duplicate entry log_visitor_info的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:数据表的 SQLSTATE [23000] 错误

SQLSTATE [23000]:违反完整性约束:1217

Laravel 7 错误 - SQLSTATE [23000]:完整性约束违规:1048 列 'first_name' 不能为空

QueryException (23000) SQLSTATE[23000]:完整性约束 v1452

SQL 错误:SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败

SQLSTATE [23000]:违反完整性约束:4025 CONSTRAINT