我试图根据此文档导入时区: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而不是日期时间,则表示脚本失败.
好成功