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

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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

You Might Also Like