时光飞逝,机会就在我们眼前,学会把握机遇。

MySQL时区设置和导入导出数据


一、把SQLite数据库中的数据导入到MySQL数据库中

django有内置的db.sqlite3数据库;但是有些时候我们需要切换到mysql数据库

切换mysql数据库
DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.mysql',   # mysql 驱动
       'NAME': 'mysite_db', # 数据库名
       'USER': 'tengxt', # 用户名
       'PASSWORD': 'tengxt123456', # 密码
       'HOST': 'localhost', # 访问的地址(localhost|127.0.0.1|'') 都代表本机
       'PORT': '3306', # 端口号 mysql默认端口是3306
  }
}
迁移数据

因为很多时候,最初使用的是SQLite数据库,但后面想把SQLite数据库中的数据迁移到mysql数据库。可以使用Django导入导出数据的命令完成迁移

导出SQLite数据库

确保db.sqlite3数据库在项目总存在;数据源是SQLite。执行以下命令

(mysite_env) D:\PyCharm_WorkSpace\mysite_env\mysite>python manage.py dumpdata > data.json

导入Mysql数据库

确保项目中data.json存在;把数据源切换成Mysql。执行命令

(mysite_env) D:\PyCharm_WorkSpace\mysite_env\mysite>python manage.py loaddata data.json
# 导入成功  
Installed 336 object(s) from 1 fixture(s)

如果导入时报 1062. “Duplicate entry 'xxxx' for key 'xxx_uniq';这是因为数据有重复的。

解决方案: 根据提示找到相应的数据表把重复的数据删掉,然后重新执行导入命令就行。

Windows上设置mysql时区设置

Django官网msyql时区配置

Time zone definitions¶
# 把 mysql_tzinfo_to_sql时区表加载到MySQL数据库中
If you plan on using Django's timezone support, use mysql_tzinfo_to_sql to load time zone tables into the MySQL database. This needs to be done just once for your MySQL server, not per database.

下载mysql_tzinfo_to_sql时区表下载地址;下载对应着自己MySQL数据库版本的时区表就行;下载完成后

timezone_posix.sql文件添加到MySQL中

# 在mysql_tzinfo_to_sql文件夹下执行以下命令
D:\studying\python\timezone_2018g_posix_sql>mysql -u root -p mysql < timezone_posix.sql
Enter password: ******

D:\studying\python\timezone_2018g_posix_sql>

如果出现mysql不是内部命令的提示,这是因为没把mysql配置添加到环境变量。

配置完成后执行以上命令等待导入

Ubuntu上设置mysql时区设置

检查你的时区表

SELECT * FROM mysql.time_zone;
SELECT * FROM mysql.time_zone_name;

# 加载时区表
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

如果这些表为空,则表示尚未初始化时区表。根据MySQL官网设置时区链接,您可以使用mysql_tzinfo_to_sql程序加载时区表;如果有问题的话,可以试试

# 这条命令对我的有效
mysql_tzinfo_to_sql /usr/share/zoneinfo

二、django设置缓存数据库

在settings.py文件中添加缓存(cache)配置

CACHES = {
   'default': {
       'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
       'LOCATION': 'my_cache_table',
  }
}

创建缓存表

python manage.py createcachetable

实现基于数据库的缓存

from django.core.cache import cache
# 获取七天热门博客的缓存数据
hot_blogs_for_seven_days = cache.get('hot_blogs_for_seven_days')
if hot_blogs_for_seven_days is None:
hot_blogs_for_seven_days = get_seven_days_hot_blogs()
cache.set('hot_blogs_for_seven_days', hot_blogs_for_seven_days, 3600)
print('hot_blogs_for_seven_days---> calc')
else:
print('hot_blogs_for_seven_days---> use cache')

Linux下如何在MySQL中将UTC日期转换为本地时区选择查询

  很赞哦!(1)
关闭

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

 发表评论  请文明留言
8 条评论
111 (2019-07-14 15:14:56):

111 131231 3211

回复
yamsunshine (2019-03-29 00:07:32):

xixixixixixi,小辣鸡!

回复
小涛 (2019-03-29 20:43:38) 回复 yamsunshine:

大佬 带带我呀

回复
小涛 (2019-03-09 20:55:00):

www.tengxt.com

回复
小涛 (2019-02-18 23:07:48):

alert("XSS脚本攻击");

回复
小涛 (2018-12-25 22:39:47):

django把SQLite数据库的数据导入到MySQL数据库中和缓存数据库的相关操作

回复
小涛 (2018-12-25 22:41:56) 回复 小涛:

测试评论树型显示

回复
小涛 (2018-12-25 22:46:39) 回复 小涛:

测试邮件发送

回复