学习常见问题——PyCharm连接MySql出现时区错误问题

此时路过一个菜的一批的Programmer


之前数MySql数据被我玩炸了,用的是MySql5.7版本,后来各种重装到最后一步都没反应,干脆直接装了个MySql8.0?。然后问题来了,我的PyCharm连不上数据库了!!!怎么肥四?经过多方排查终于找到问题。

一、事情是这样的

当我测试连接数据库的时候发生了酱的事情:
在这里插入图片描述
就是下面的东西

4/1/2019
2:54 PM	java.lang.RuntimeException: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
				at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
				at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
				at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
				at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
				at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
				at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)
				at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:132)
				at com.mysql.cj.protocol.... (show balloon)

2:54 PM	news@localhost: java.lang.RuntimeException: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öй ... more

之前还用得好好的,怎么突然间给我整了个这???难道今天愚人节,系统也开始玩我了么???


二、经过一番冷静分析

想了想好像自己做的项目是Django项目,是不是settings.py没整好?然后我就开始整

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',   # 数据库引擎用MySQL
        'NAME': 'database_name',                # 数据库名称
        'USER': 'root',                         # 用户名
        'PASSWORD': '123456',                   # 数据库密码
        'HOST': 'localhost',                    # 默认是localhost
        'PORT': '3306'                          # MySQL的默认端口号3306
    }
}


# Password validation
# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

别忘了还有同目录下的__init__.py文件

import pymysql

pymysql.install_as_MySQLdb()

三、然而事情没这么简单

本以为这样就大功告成了啊,但是在测试连接的时候还是报了同样的错??
后来也不知道怎么想的,好像当初装完MySql8.0之后没有设置数据库的时区!!!!
然后我怀着忐忑的心态,去尝试了一下:

  • 在终端上打开mysql;
  • 设置时区;
  • 然后跟他说再见;
    在这里插入图片描述

四、终于解决了?

重新测试,连接数据库
在这里插入图片描述


四、总结

嘤嘤嘤,本来真的以为是愚人节,JetBrain给我整的玩笑呢,嘤嘤嘤?,谁知道真的是我太菜了,才会忽视MySQL数据库设置时区的问题啊,好菜啊???


Tips:希望大家看了这篇文章之后,不要说我菜,嘤?

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值