glibc时区不生效_Django学习踩坑关于Mysql的时区设置

    最近在学习django网课,但是由于是之前的课程,所以很多内容都更新换代了,一边学习一边踩坑,顺便将其一起记录下来。

    这次主要是两部分,一部分是关于Mysql的崩溃事件,我在折腾Mysql的时区设置时把它搞崩了,net start mysql无法启动,一直提示“MySQL 服务正在启动 ..MySQL 服务无法启动。”百度了很多答案,雷同,无法解决,最后还是谷歌靠谱点,解决了问题(或者说解决了一半,因为原来的数据丢失无法恢复,这也说明了备份的重要性),我的mysql版本为mysql8,windows10系统,首先进入到mysql8目录下,删除data目录,再利用cmd进入到mysql8/bin目录下,依次输入4个命令(每个命令回车一次)

mysqld -removemysqld --initializemysqld --initialize-insecuremysqld -install

此时再次输入net start mysql顺利启动,而且可以发现mysql8目录下面再次多了一个data目录,但是因为mysql进行了初始化,所以在CMD我们输入mysql -u root -p是无法进入到数据库里面的,报错如下

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor...

我们可以打开data目录,在里面找到一个以err为后缀的文件,以文本形式打开它,在里面可以找到类似这样的一句话:

A temporary password is generated for root@localhost: FHIflBW!N6%U

这个后面即是我们所需要的的密码,进入到mysql数据库后,我们就可以将密码进行修改啦

alter user user() identified by "新密码";

    第二个坑是在Django项目中,对models下面的DateTimeField字段进行了mysql数据库映射,但是在views中无法提取到相关数据,代码如下:

articles = Article.objects.filter(create_time__date=datetime(year=2020,month=11,day=10))print(articles.query)>> SELECT `modifiedArticle_table`.`id`, `modifiedArticle_table`.`title`, `modifiedArticle_table`.`content`, `modifiedArticle_table`.`category_id`, `modifiedArticle_table`.`create_time` FROM `modifiedArticle_table` WHERE DATE(CONVERT_TZ(`modifiedArticle_table`.`create_time`, 'UTC', 'Asia/Shanghai')) = 2020-11-10print(articles)>> <QuerySet []>

    原因是Mysql数据库中默认不存在诸如'UTC', 'Asia/Shanghai'这些时区信息,我们需要前往Mysql官网下载相关时区信息加载进来,网址如下:

https://dev.mysql.com/downloads/timezones.html

    我们可以看到以Mysql5.7为界限分为了两个下载包,因为我是mysql8,所以我下载了下面的包:timezone_2020d_posix_sql.zip,具体如何使用,感兴趣的也可以去看看,通过点击下方的For 5.7 installation details查看(实在没办法,中文互联网查不到这些资料),我们可以看到里面有linux、mac和windows教学方法,windows处理方法如下:

将下载的文件解压出来,然后利用如下命令行将其加载到Mysql当中(千万别傻乎乎的复制粘贴,按照官网的指导就行)

mysql -u root -p mysql < file_name

如何测试是否成功加载时区呢?摘录官网如下:

The test uses this query:SELECT  CONVERT_TZ('2007-03-11 2:00:00','US/Eastern','US/Central') AS time1,  CONVERT_TZ('2007-03-11 3:00:00','US/Eastern','US/Central') AS time2;

如果两个时区的结果显示一致,则说明成功加载。如果还未生效请重启一下Mysql。

22bca2baa620e38758a65c040e3b96c4.png

如果在你未安装之前,运行这条命令提示为空,

fa1154b87a3bf3964204bea5f443ad51.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值