Django: Django. Db. Utils. Internalerror: (1046, U'no Database Selected')

Django: Django. Db. Utils. Internalerror: (1046, U'no Database Selected')

I'm trying to use Django with mariadb 10.4.8 My settings.py file is as follows:

DATABASES = {
    'default': {
        'NAME:': 'mydb',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'staff',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '',
    }
}

In init.py:

import pymysql

pymysql.install_as_MySQLdb()

"./manage.py makemigrations" and "./manage.py migrate" yield the same error:

    File "./manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 83, in handle
    executor = MigrationExecutor(connection, self.migration_progress_callback)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 20, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/migrations/loader.py", line 52, in __init__
    self.build_graph()
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/migrations/loader.py", line 210, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 65, in applied_migrations
    self.ensure_schema()
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 52, in ensure_schema
    if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/backends/base/introspection.py", line 55, in table_names
    return get_names(cursor)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/backends/base/introspection.py", line 50, in get_names
    return sorted(ti.name for ti in self.get_table_list(cursor)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/backends/mysql/introspection.py", line 56, in get_table_list
    cursor.execute("SHOW FULL TABLES")
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 101, in execute
    return self.cursor.execute(query, args)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/pymysql/cursors.py", line 170, in execute
    result = self._query(query)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/pymysql/cursors.py", line 328, in _query
    conn.query(q)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/pymysql/connections.py", line 517, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/pymysql/connections.py", line 732, in _read_query_result
    result.read()
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/pymysql/connections.py", line 1075, in read
    first_packet = self.connection._read_packet()
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/pymysql/connections.py", line 684, in _read_packet
    packet.check_error()
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/pymysql/protocol.py", line 220, in check_error
    err.raise_mysql_exception(self._data)
  File "/home/ubuntu/wemu_app/wemu_app_env/local/lib/python2.7/site-packages/pymysql/err.py", line 109, in raise_mysql_exception
    raise errorclass(errno, errval)
django.db.utils.InternalError: (1046, u'No database selected')

Before anyone asks, yes I am sure the database exists and the user has privledges to to it. I can confirm this with:

mysql -u staff -r mydb

I'm using the tutorial found here in case anyone is curious:

Any ideas? I'm tearing my hair out here.

3

1 Answer

You're trying to use a MySQL backend engine to connect to MariaDB.

'ENGINE': 'django.db.backends.mysql',

Official support for MariaDB was recently added in Django 3.0. It's still in Alpha testing though.

I think you're better off using a MySQL database to avoid further problems.

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Robert Thorne
Author

Robert Thorne

Robert Thorne covers electric vehicle innovations, autonomous driving systems, global mobility trends, and automotive engineering developments.