温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

django配置使用mysql数据库过程

发布时间:2020-08-10 12:52:24 来源:ITPUB博客 阅读:123 作者:li_jinsong 栏目:编程语言
  1. 修改项目下setting.py文件下,DATABASES字典中的default字典中的内容:
DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',   
        'NAME': 'danger',     # 使用的数据库名称,需在mysql中先创建该数据库
        'USER': 'root',     # 登录的用户名
        'PASSWORD': 'mysql',   # 用户名密码
        'HOST': 'localhost',    # 访问的数据库IP
        'PORT': '3306'       # 访问数据库端口号
    }
}
  1. 以“danger”为例,在mysql中创建数据库
create database danger;
  1. 执行 python3 manage.py makemigrations创建模型迁移
  2. 执行时,遇到了报错内容
    “django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.”
    django配置使用mysql数据库过程

  3. 解决该问题可采用两种方法:
    1)直接安装mysqlclient
    2)修改项目下的__init__.py文件:

import pymysql
pymysql.install_as_MySQLdb()
  1. 笔者采用了第一种方法直接安装mysqlclient,安装方法:
    1)安装依赖包:sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
    2)pip install mysqlclient
  2. 再次执行 python3 manage.py makemigrations,发现上面的报错已经没有了,有一条新的报错:
    django.db.utils.OperationalError: (1698, “Access denied for user ‘root’@’localhost’”)
    django配置使用mysql数据库过程

  3. 原因为没有考虑到mysql用root用户登录,需要系统超级用户权限,即
    sudo mysql -uroot -pmysql

  4. 在mysql中新建一个用户
grant all privileges on `danger`.* to 'test'@'localhost' identified by '123456'
  1. 再修改setting.py文件
DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',   
        'NAME': 'danger',     # 使用的数据库名称,需在mysql中先创建该数据库
        'USER': 'test',     # 登录的用户名
        'PASSWORD': '123456',   # 用户名密码
        'HOST': 'localhost',    # 访问的数据库IP
        'PORT': '3306'       # 访问数据库端口号
    }
}
  1. 执行 python3 manage.py makemigrations成功创建模型迁移
  2. 执行迁移生成表python3 manage.py migrate
  3. 完成
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI