如何使用xampp在ubuntu中的mysql数据库中填充区域表

我试图根据此文档导入时区:http://dev.mysql.com/doc/refman/5.7/en/mysql-tzinfo-to-sql.html.

当我尝试通过终端命中第一个命令时,即

mysql_tzinfo_to_sql tz_dir

它说

There were fatal errors during processing of zoneinfo directory 'tz_dir'

当我跑步时:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

然后它返回

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

操作系统:Ubuntu

服务器:XAMPP(具有mariadb)

因此,我无法将时区数据导入mysql数据库的区域表中.

解决方法:

今天早晨,我试图在生产服务器(使用CentOS)上填充时区表时遇到了这个问题.

我通过从开发计算机中导出表创建脚本来解决此问题(在Windows上填充表只需要下载表并将它们复制到正确的目录中).

我对创建脚本进行了一些调整,现在它对我有用:

由于脚本太长,我无法将其发布在答案中.

https://drive.google.com/file/d/0B7iwL5F-hwr_YkItRXk2Z1VZdlE/view?usp=sharing

这是带有注释的版本(但似乎不起作用,因此请使用无注释的版本).

https://drive.google.com/file/d/0B7iwL5F-hwr_dWdjTDREcXNHQmM/view?usp=sharing

该脚本的运行时间不应超过几秒钟.您可能需要使用root用户才能运行它.

您可以使用此查询来验证安装:

SELECT CONVERT_TZ(CURRENT_DATE(),'UTC','America/Montreal');

如果返回NULL而不是日期时间,则表示脚本失败.

好成功

上一篇:本地安装部署禅道


下一篇:如何知道我的xampp上使用的是什么版本的PHP?