Операционная ошибка в Django: Перенос веб-приложения Python на базу данных mariadb

Я пытаюсь подключить базу данных mariadb, которую я создал на виртуальной машине Linux, и заставить мое веб-приложение python перенести файлы на нее.

Когда я использую команду python manage.py migrate, я сталкиваюсь с этой ошибкой:

django.db.utils.OperationalError: (2002, "Can't connect to server on '127.0.0.1' (36)")

При подключении к базе данных в терминале я получаю следующую ошибку:

mysql -h '127.0.0.1' -P user database_name

ERROR 2002 (HY000): Can't connect to server on '127.0.0.1' (36)

Я пытаюсь подключиться через unix_socket и уже направил файл по правильному пути в файле my.cnf. (/tmp/mysql.sock) не является правильным, и я не совсем понимаю, почему он указывает этот путь прямо.

Вот мой раздел DATABASES в settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',
        'NAME': 'Database-name',
        'USER': 'user',
        'PASSWORD': 'Password',
    }   
}

Я также включил параметр options в 'PASSWORD', чтобы указать фактический путь к файлу сокета. Вот мой файл my.cnf в linux:

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]
socket=/var/lib/mysql/mysql.sock
port=3306
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d


У меня тоже есть порт, включенный в файл, и я попытался проверить, будет ли работать подключение через порт, но получил аналогичную ошибку.

Я все еще изучаю SQL и то, как настраиваются базы данных, я пытался обратиться к документации в mariadb и не смог найти ответ на свою проблему. В настоящее время я запускаю виртуальную машину CentOS9 через UTM.

Я попробовал изменить хост на 'localhost' и подписаться таким образом, но в командной строке и в терминале я получаю похожие ошибки:

Command Line: django.db.utils.OperationalError: (2002, "Can't connect to local server through socket '/tmp/mysql.sock' (2)") 

Terminal: mysql -h localhost -u user databasename OUTPUT: ERROR 2002 (HY000): Can't connect to local server through socket '/tmp/mysql.sock' (2)

Я подумал, что это может быть связано с настройками брандмауэра в linux, но после проверки все они настроены правильно и порт 3306 доступен.

Я пробовал перезапускать сервер в mariadb несколько раз, но все равно получаю ту же ошибку. Вот мой статус mariadb, когда он активирован:

mariadb.service - MariaDB 10.11 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; preset: disabled)
     Active: active (running) since Fri 2024-02-23 08:05:28 EST; 5s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 87666 ExecStartPre=/usr/libexec/mariadb-check-socket (code=exited, status=0/SUCCESS)
    Process: 87688 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir mariadb.service (code=exited,>
    Process: 87734 ExecStartPost=/usr/libexec/mariadb-check-upgrade (code=exited, status=0/SUCCES>
   Main PID: 87723 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 11 (limit: 22581)
     Memory: 78.3M
        CPU: 755ms
     CGroup: /system.slice/mariadb.service
             └─87723 /usr/libexec/mariadbd --basedir=/usr

Feb 23 08:05:27 localhost.localdomain systemd[1]: Starting MariaDB 10.11 database server...
Feb 23 08:05:27 localhost.localdomain mariadb-prepare-db-dir[87688]: Database MariaDB is probably>
Feb 23 08:05:27 localhost.localdomain mariadb-prepare-db-dir[87688]: If this is not the case, mak>
Feb 23 08:05:28 localhost.localdomain systemd[1]: Started MariaDB 10.11 database server.
Вернуться на верх