windows安装mysql
进入mysql官网下载mysql-8.0.11-winx64.zip,在根目录新建my.ini配置,注意安装路径和存放路径
[mysqld]
# 设置mysql的安装目录
basedir=D:/software_test/mysql-8.0.11-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:/software_test/mysql-8.0.11-winx64/data
# 设置默认使用的端口
port=3306
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人试图攻击数据库
max_connect_errors=10
# 服务端使用的字符集
character-set-server=utf8mb4
# 数据库字符集对应一些排序等规则使用的字符集
collation-server=utf8mb4_general_ci
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件作为认证加密方式
# MySQL8.0默认认证加密方式为caching_sha2_password
default_authentication_plugin=mysql_native_password [mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4 [client]
default-character-set=utf8mb4
port=3306
加入环境变量D:\software_test\mysql-8.0.11-winx64\bin
根目录新建data文件夹,在bin目录进入cmd,初始化数据库无密码登录,这里会提示密码
~$ mysqld --initialize
安装启动服务
~$ mysqld --install
~$ net start mysql
进入MySQL并设置密码
~$ mysql -u root -p
~$ ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
修改项目下settings.py
DATABASES= {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysite_db',
'USER': 'zyc',
'PASSWORD': 'zyc123456',
'HOST': 'localhost',
'PORT': '3306',
}
}
创建库和用户
# 创建数据库
create database mysite_db default charset=utf8mb4 default collate utf8mb4_unicode_ci;
# 创建用户
create user ‘zyc’@’localhost’ identified by ‘zyc123456’;
# 给库赋权
grant all privileges on mysite_db.* to 'zyc'@'localhost';
# 刷新权限
flush privileges;
# 查看有哪些数据库
Show databases;
账号密码都创建成功后,修改django--settings下的数据库账密
下载安装mysqlclient包,下载地址
~$ pip install mysqlclient-1.3.13-cp35-cp35m-win_amd64.whl
迁移和生成缓存表
# 迁移表
~$ python manage.py makemigrations
~$ python manage.py migrate
# 新建缓存表
~$ python manage.py createcachetable
# 运行django
~$ python manage.py runserver
先还原settings.py的DATABASES设置为sqlite,把数据导出到data.json中输入如下命令
~$ python manage.py dumpdata > data.json
再把DATABASES配置换成mysql并导入数据输入
~$ python manage.py loaddata data.json
导入数据会有数据重复的报错(could not load contenttypes),需先删除django_content_type表输入 delete from django_content_type
;连同关联表也先删除 delete from auth_permission
; 得到 Installed 317 object(s) from 1 fixture(s)
表示成功
windows下mysql数据同步至Linux
Linux下创建库和用户
# 登录数据库
~$ mysql -u root -p show databases;
# 创建数据库
~$ CREATE DATABASE mysite_db DEFAULT CHARSET=utf8 DEFAULT COLLATE utf8_unicode_ci;
# 创建用户
~$ CREATE USER 'zyc'@'localhost' IDENTIFIED BY 'zyc123456';
# 用户赋权
~$ GRANT ALL PRIVILEGES ON mysite_db.* TO ‘zyc’@’localhost’;
# 刷新数据库
~$ FLUSH PRIVILEGES;
迁移数据
# 在本地导出数据:
~$ mysqldump -u zyc -p mysite_db > data.sql
# 传输文件:
进入dos命令下
~$ scp data.sql root@公网ip:/home/data.sql
# 进入home目录导入数据
~$ mysql -u zyc -p mysite_db --> source data.sql
# 注意修改setting文件数据库配置
ALLOWED_HOSTS = [‘*’]
#运行项目
~$ python manage.py 0.0.0.0:80
问题记录
报错 2006 - MySQL server has gone away
,找到my.conf目录,增加如下
max_allowed_packet=500M(允许的最大数据包)
wait_timeout=288000(等待的最长时间)
interactive_timeout = 288000
保存后,重启mysql服务
版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:http://zhangyanc.club/article/django-migrate/
许可协议:署名-非商业性使用 4.0 国际许可协议