我正在尝试根据此文档导入时区: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
而不是 datetime
,则表示脚本失败。
成功了
关于mysql - 如何使用 xampp 在 ubuntu 中填充 mysql 数据库中的区域表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51154996/