我当时正在研究德鲁帕尔,并问了这个问题:
我决定检查一下,CMS在Unix时代结束后将如何运行。将本地日期设置为01.01.2040并重新启动。
令我惊讶的是,这个网站根本没有工作。原因是,MySQL倒下了。我尝试手动连接,得到了一个错误:
>mysql -uroot -ppass
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)我在Win XP上使用MySQL 5.5。为什么会有这么奇怪的行为?
发布于 2012-10-02 20:58:29
其基本原理可能是基于MySQL和OS (在本例中,Windows )更易于处理的日期时间表示。
他们的数据和时间范围会有很大的不同。注意MySQL文档中的进一步差异
日期时间类型用于包含日期和时间部分的值。MySQL以‘YYYY:MM:SS’格式检索和显示日期时间值。支持范围是'1000-01-01 :00:00:00“到'9999-12-31 23:59:59‘。时间戳数据类型用于包含日期和时间部分的值。时间戳的范围是'1970-01-01 : 00:00:01‘世界协调时- '2038-01-19 03:14:07’世界协调时。MySQL将时间戳值从当前时区转换为UTC存储,并从UTC转换回当前时区进行检索。(对于其他类型,如DATETIME,则不会发生这种情况。)默认情况下,每个连接的当前时区是服务器的时间。时区可以按每个连接设置.只要时区设置保持不变,就会得到存储的相同值。如果存储时间戳值,然后更改时区并检索值,则检索的值与存储的值不同。这是因为在两个方向上都没有使用相同的时区进行转换。当前时区作为time_zone系统变量的值可用。有关更多信息,请参见10.6节“MySQL服务器时区支持”。
由于MySQL和TimeZone都支持TimeZone,所以让mysqld更多地了解TimeZone可能对MySQL最有利。这可能是一个秘密的动机,让您的MySQL数据库离开Windows并进入Linux。(我的阴谋论)
https://dba.stackexchange.com/questions/25302
复制相似问题