【问题标题】:1049, "Unknown database 'database' " django mysql can't connect1049, “未知数据库‘数据库’” django mysql 无法连接
【发布时间】:2012-06-19 08:04:02
【问题描述】:
Exception Type: OperationalError at /
Exception Value: (1049, "Unknown database 'database'")

目前我尝试了这个:

DATABASES = {
   'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'database',                      # Or path to database file if using sqlite3.
        'USER': 'root',                      # Not used with sqlite3.
        'PASSWORD': '****',                  # Not used with sqlite3.
        'HOST': '/var/lib/mysql/database/',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '80',                      # Set to empty string for default. Not used with sqlite3.
    }
}

如果我没有指定主机,我会收到此错误:

OperationalError at /

(2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/database' (13)")

可以是有权限的东西吗?

提前感谢:)

【问题讨论】:

  • 你在mysql中创建了db“数据库”吗?

标签: python mysql django amazon-ec2 database-connection


【解决方案1】:

我不认为您可以通过名称数据库创建数据库。所以请先检查以下...

1) 是否已安装 mysql-server 并创建具有适当授予所有权限的数据库?如果您已这样做,请检查后续步骤

2) 我不了解 Amazon,但这个错误在 Redhat 和 Fedora 的旧版本 Linux 发行版中很常见。一种选择是这样做 通过将 /etc/sysconfig/selinux 中的 SELINUX 行设置为 Disabled:

SELINUX=禁用

【讨论】:

  • mysql> 创建数据库数据库; ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“数据库”附近使用正确的语法
  • 没有伙伴...我只是将其更改为堆栈的数据库...实际上它是别的东西
【解决方案2】:

PORT不是Web服务器端口,而是数据库端口,对于MySQL是3306HOST是数据库服务器的IP或名称。你可能想要127.0.0.1

您应该在 mysql 提示符下使用 create database mydatabase charset utf8; 预先创建数据库。

【讨论】:

  • 我不是本地人,我在服务器上...所以我应该使用与服务器相同的 ip?
【解决方案3】:

首先,在mysql上创建数据库。 其次,像这样编辑您的默认连接。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'MY_DATABASE_NAME',
        'USER': 'root',
        'PASSWORD': 'MY_PASSWORD',
    }
}

最后运行你的同步数据库。

./manage.py 同步数据库

【讨论】:

    【解决方案4】:

    在终端登录mysql并创建数据库

    mysql -u root -p
    
    CREATE DATABASE dbname;
    
    USE dbname;
    

    然后在setting.py文件上

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'dbname',
            'USER': 'root', #Mysql username
            'PASSWORD': 'password', #mysql password
            'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
            'PORT': '3306',
        }
    }
    

    【讨论】:

    • 请在您的代码中添加一些解释。是什么让您认为数据库一开始就不存在?
    猜你喜欢
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 2020-11-13
    • 2020-06-25
    相关资源
    最近更新 更多