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
'programing' 카테고리의 다른 글
Python 문자열과 정수 연결 (0) | 2022.11.18 |
---|---|
j쿼리 클릭 이벤트가 여러 번 발생합니다. (0) | 2022.11.18 |
(Python의 Mock 프레임워크를 사용하여)에서 사용되는 오픈을 어떻게 모킹합니까? (0) | 2022.11.18 |
PHP에서 정수를 문자열로 변환 (0) | 2022.11.18 |
File.Separator vs FileSystem.getSeparator() vs System.getProperty("file.separator")? (0) | 2022.11.18 |