programing

MariaDB, Django 및 127.0.0.1

bestcode 2022. 11. 18. 21:39
반응형

MariaDB, Django 및 127.0.0.1

MySQL을 Django와 함께 사용하고 있었는데 모든 것이 정상적으로 작동했습니다.

이것은 나의 Django 데이터베이스 설정입니다.

DATABASES['default'] = {
    'ENGINE': 'django.db.backends.mysql',
    'USER': 'putty',
    'PASSWORD': 'putty',
    'HOST': '127.0.0.1',
    'NAME': 'putty',
}

데이터베이스와 사용자를 만들기 위해 MySQL에서 실행한 작업은 다음과 같습니다.

CREATE DATABASE putty CHARACTER SET = 'utf8';
CREATE USER 'putty'@'localhost' IDENTIFIED BY 'putty';
GRANT ALL PRIVILEGES ON putty.* TO 'putty'@'localhost' WITH GRANT OPTION;

그러나 MariaDB를 설치하고 MySQL 데이터 디렉토리를 지우고 위와 같이 시도하면 데이터베이스에 접속할 수 없게 됩니다.

장고가 말하길...

OperationalError: (1049, "Unknown database 'putty'")

Django 데이터베이스 설정을 변경한 경우:

    'HOST': 'localhost',

정상적으로 동작합니다(단, 프로덕션 MySQL이 동작하지 않기 때문에 불가능합니다).

MariaDB를 127.0.0.1 호스트와 함께 작동시키려면 어떻게 해야 합니까?

사용자를 삭제하고 127.0.0.1 호스트를 사용하여 다시 생성하려고 했지만 MariaDB에서 허용되지 않습니다.

갱신하다

에 로그인하다putty@127.0.0.1

mysql -u putty -h 127.0.0.1 -p
SHOW DATABASES;

1개의 데이터베이스밖에 표시되지 않는다(information_schema).

단,putty@localhost다 보여요.이상하다.

갱신하다

로그인까지root@127.0.0.1데이터베이스를 작성할 수 없습니다.

설정했을 때--protocol=TCP같은 것을 알 수 있다.--protocol=SOCKET모든 것이 잘 작동한다.

localhost는 MariaDB/MySQL 컨텍스트에서 특별합니다.UNIX 도메인 소켓 연결을 선택합니다. 127.0.0.1은 TCP/IP 연결을 사용합니다.그들은 완전히 다르다.사용 권한에는 위에서 설명한 내용과 더불어'putty'@'localhost'포함시킬 필요가 있습니다.'putty'@'127.0.0.1'또한 이들은 서로 다른 사용자이며 서로 다른 권한과 암호를 가질 수 있으며 서로 다른 연결 방법을 가리킵니다.

또한 MariaDB가 127.0.0.1을 리슨하고 있는지 확인해야 합니다.이것은 대부분의 경우 기본이지만 이행된 오래된 Configuration에서는 my.cnf에 아직 스킵네트워킹이 설정되어 있을 수 있습니다.설정이 되어 있는 경우는, 코멘트를 실시할 필요가 있습니다.새로운 설정은 로컬루프백에 바인드 됩니다.

bind-address = 127.0.0.1

이는 127.0.0.1 경유로 (올바른 권한을 가진) 사용자를 받아들이기에 충분합니다.

언급URL : https://stackoverflow.com/questions/17830127/mariadb-django-and-127-0-0-1

반응형