导出/导入后,Mysql Time被卡住了

时间:2011-05-25 20:56:10

标签: mysql time timestamp

我的一个mysql用户以这种方式点击了他的生产数据库:

他将所有数据导出到dumpfile,然后删除了所有内容,然后将数据导回数据库。 他从Innodb的大表空间中保存了一些Gigs(我不知道为什么他这样做但这不是重点)。

现在我们遇到了问题。

now()返回的时间总是相同的,操作的时间(如果这是导出时间或导入时间,我不知道)。

演示:

mysql> \! date
Wed May 25 22:49:24 CEST 2011
mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2011-05-07 05:34:52 |    <--- the date of the export/import, mysql is stuck at this date
+---------------------+
1 row in set (0.00 sec)

mysql> select sysdate();
+---------------------+
| sysdate()           |
+---------------------+
| 2011-05-07 05:34:52 |
+---------------------+
1 row in set (0.01 sec)

mysql> show variables like 'timestamp';
+---------------+------------+
| Variable_name | Value      |
+---------------+------------+
| timestamp     | 1304739292 |  <-- timestamp is stuck to this value
+---------------+------------+

mysql> set timestamp=1;        <-- i can manually change the time returned by now()
Query OK, 0 rows affected (0.00 sec)

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 1970-01-01 01:00:01 |
+---------------------+
1 row in set (0.00 sec)

mysql> select sysdate();
+---------------------+
| sysdate()           |
+---------------------+
| 2011-05-07 05:34:52 |   <--- but sysdate() is still stuck
+---------------------+
1 row in set (0.00 sec)

知道如何在不重新启动mysqld或重新导入数据的情况下解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

疯狂猜测: 如果在mysql中设置了“--sysdate-is-now”选项,则SYSDATE()的行为类似于NOW() - 因此您不会看到如上所述的两个函数之间的任何差异。来自http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_sysdate

SYSDATE()返回执行的时间。这与NOW()的行为不同,后者返回一个表示语句开始执行的时间的常量时间。

最终您的导入过程由于某种原因没有完成?使用“SHOW PROCESSLIST”检查进程列表,然后执行“KILL(Process_Id)”,看看是否有助于让时间函数回到正轨。