How to connect Django to Mysql on MacOS device? How do I fix the ImproperlyConfigured error I get?

21 Views Asked by At

I'm trying to connect to a database via Python Django, and even though I downloaded mysqlclient, the system still returns me an error message. What should I do?

The error code I received:

(base) batuhanbilgili@Batuhan-MBP catalog % python3 manage.py runserver
> Watching for file changes with StatReloader
> Exception in thread django-main-thread:
> Traceback (most recent call last):
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 15, in <module>
> import MySQLdb as Database
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/MySQLdb/__init__.py", line 17, in <module>
> from . import _mysql
> ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/MySQLdb/_mysql.cpython-38-darwin.so, 0x0002): symbol not found in flat namespace '_mysql_affected_rows'
> 
> The above exception was the direct cause of the following exception:
> 
> Traceback (most recent call last):
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 932, in _bootstrap_inner
> self.run()
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 870, in run
> self._target(*self._args, **self._kwargs)
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper
> fn(*args, **kwargs)
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 125, in inner_run
> autoreload.raise_last_exception()
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/utils/autoreload.py", line 87, in raise_last_exception
> raise _exception[1]
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/core/management/__init__.py", line 394, in execute
> autoreload.check_errors(django.setup)()
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper
> fn(*args, **kwargs)
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
> apps.populate(settings.INSTALLED_APPS)
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/apps/registry.py", line 116, in populate
> app_config.import_models()
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/apps/config.py", line 269, in import_models
> self.models_module = import_module(models_module_name)
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py", line 127, in import_module
> return _bootstrap._gcd_import(name[level:], package, level)
> File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
> File "<frozen importlib._bootstrap>", line 991, in _find_and_load
> File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
> File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
> File "<frozen importlib._bootstrap_external>", line 783, in exec_module
> File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/contrib/auth/models.py", line 3, in <module>
> from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/contrib/auth/base_user.py", line 57, in <module>
> class AbstractBaseUser(models.Model):
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/db/models/base.py", line 143, in __new__
> new_class.add_to_class("_meta", Options(meta, app_label))
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/db/models/base.py", line 371, in add_to_class
> value.contribute_to_class(cls, name)
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/db/models/options.py", line 243, in contribute_to_class
> self.db_table, connection.ops.max_name_length()
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/utils/connection.py", line 15, in __getattr__
> return getattr(self._connections[self._alias], item)
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/utils/connection.py", line 62, in __getitem__
> conn = self.create_connection(alias)
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/db/utils.py", line 193, in create_connection
> backend = load_backend(db["ENGINE"])
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/db/utils.py", line 113, in load_backend
> return import_module("%s.base" % backend_name)
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py", line 127, in import_module
> return _bootstrap._gcd_import(name[level:], package, level)
> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
> raise ImproperlyConfigured(
> django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
> Did you install mysqlclient?
> `

I tried to make a database connection and did everything as in the image I added. I am using a Macbook 2020 model and it returns the did you install mysqlclient error.

The code I'm trying to make the data connection:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'mydb',
            'USER': 'root',
            'PASSWORD': 'pass_word',
            'HOST': '127.0.0.1',
            'PORT': '3306',
            'OPTIONS': {  
                'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"  
            }
        }
    }
0

There are 0 best solutions below