如何启用MySQL函数来记录从客户端收到的每个SQL查询语句以及查询语句提交的时间?我可以在phpmyadmin或NaviCat中执行此操作吗?我如何分析日志?
我正在启动一个带有sails和mysql的项目,我不知道如何配置它以显示在控制台中执行的查询.
我收到错误MysqlError: Duplicate entry '1-5' for key 'PRIMARY'
,如下面的代码中所示.它只发生一次(我可以检测到,但它是随机的)我找不到原因(New Relic报道),但我无法重现,除了行号和给出的错误,我没有更多的信息.架构和代码如下.
num_rows()
以某种方式返回一个不是1的值,即使它不应该.如果有人可以提供一些有关如何调试或修复的见解,那将会有所帮助.
这是我的location_items架构:
CREATE TABLE `phppos_location_items` (
`location_id` int(11) NOT NULL,
`item_id` int(11) NOT NULL,
`location` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`cost_price` decimal(23,10) DEFAULT NULL,
`unit_price` decimal(23,10) DEFAULT NULL,
`promo_price` decimal(23,10) DEFAULT NULL,
`start_date` date DEFAULT NULL,
`end_date` date DEFAULT NULL,
`quantity` decimal(23,10) DEFAULT '0.0000000000',
`reorder_level` decimal(23,10) DEFAULT NULL,
`override_default_tax` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`location_id`,`item_id`),
KEY `phppos_location_items_ibfk_2` (`item_id`),
CONSTRAINT `phppos_location_items_ibfk_1` FOREIGN KEY (`location_id`) REFERENCES `phppos_locations` …
Run Code Online (Sandbox Code Playgroud) 我们面临着一个非常关键和奇怪的问题,经过漫长的过程,几乎没有数据丢失。我们正在处理货物数据,一次发货可能包含来自1000个客户的1000个箱子。每个客户都会得到自己的跟踪号码(运单号码),我们将把 1000 个货件添加到一个货件编号中,并且我们将使用货件编号更新每个流程。当我们更新货件编号时,所有关联的货件都将更新。在此过程中,我们不会更新托运人/收货人详细信息,但在此过程之后,随机托运人和收货人数据将被删除。我们已经分析了整个代码 1 周,但我们不知道它到底在哪里被删除。这是一个生产问题,我们正处于非常关键的阶段。我们无法在我们的环境中重现此问题。但这是来自不同分支机构的客户端随机报告的。
为了解决这个问题,我们决定添加更多日志,并希望对执行的 SQL 语句进行严格监控。无论如何,我是否必须记录/保存来自 Laravel(数据库和 Eloquent 模型)的执行查询。我期望的是,如果我在 laravel 框架类中添加一段代码,它必须将 sql 查询记录在文件/数据库中,这样我们就不会错过任何查询。
我们开始分析日志,但仍然没有任何线索,有人可以建议如何解决这个问题吗?
我们正在使用 Laravel 5.5