【问题标题】:MySql configuration for DjangoDjango 的 MySql 配置
【发布时间】:2017-08-22 13:05:11
【问题描述】:

尝试运行时出现错误

python manage.py migrate

django.db.utils.OperationalError: (1045, "Access denied for user 'someuser'@'localhost' (using password: NO)")

这是我在setting.py 中的数据库设置

DATABASES = { 
    'default': { 
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': '/config/mysql.cnf',
        },
    }
}

config/mysql.cnf

[客户端]
数据库 = 数据库名称
用户 = root
密码 = passwt
主机 = localhost
默认字符集 = utf8

【问题讨论】:

  • 有人请调查一下。
  • 您似乎使用了配置文件的绝对路径 (/config/mysql.cnf),但您的实际配置文件可能位于其他位置。
  • /config/mysql.cnf文件只在项目里面
  • 这是我的项目结构:- ├── │ ├── config │ │ └── mysql.cnf │ ├── dump.sql │ ├── init.py │ ├── pycache │ │ ├── init.cpython-35.pyc │ │ ├── settings.cpython-35。 pyc │ │ ├── urls.cpython-35.pyc │ │ └── wsgi.cpython-35.pyc │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── 管理.py

标签: python mysql django mysql-python


【解决方案1】:

MySql 配置可以在 settings.py 文件中提供,如下所示

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'DB_NAME',
    'USER': 'DB_USER',
    'PASSWORD': 'DB_PASSWORD',
    'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
    'PORT': '3306',
    'OPTIONS': {
        'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        'charset': 'utf8mb4',
    }
} }

如果需要配置外部文件,下面可能会有所帮助

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'OPTIONS': {
        'read_default_file': os.path.join(BASE_DIR, 'mysql.cnf'),
    }
} }

mysql.cnf 文件应该在项目目录中

【讨论】:

  • 如果我以前从设置中直接调用 mysql 连接,它将起作用。但我需要更多的安全性。
  • 啊,好吧。编辑了我的帖子。通过这种方式为我工作。
  • 感谢您的工作。我删除了项目中的一步配置文件夹。
猜你喜欢
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-02
  • 1970-01-01
  • 2013-07-13
相关资源
最近更新 更多