작동 오류: (2002, "socket '/var/run/mysqld/mysqld를 통해 로컬 MySQL 서버에 연결할 수 없습니다.양말'(2))
장고의 mysql 데이터베이스에 접속할 때 오류가 발생합니다.
mysql 서버가 실행되고 있습니다.
/var/run/mysqld/mysqld. sock이 없습니다.
내가 뛸때
$ find / -name *.sock -type s
, 저는 /tmp/mysql.sock 및 기타 관련 없는 출력만 받습니다.추가했습니다.
socket = /tmp/mysql.sock
/etc/my.cnf로 전송합니다.그리고 나서 mysql을 재설정하고, django shell을 빠져나와 mysql 데이터베이스에 연결했습니다.여전히 같은 오류가 발생했습니다.
많이 찾아봤는데 아직도 방법을 잘 모르겠어요.
어떤 도움이라도 좋습니다.미리 감사드립니다.
그냥 몇가지 방법을 시도했을 뿐입니다.그리고 그것은 동작한다.저는 다음과 같이 했습니다.
- 더하다
socket = /tmp/mysql.sock
.mysql 서버를 다시 시작합니다. ln -s /tmp/mysql.sock /var/lib/mysqld/mysqld.sock
오늘 또 문제가 생겼습니다.mysql에 로그인할 수 없습니다.mysql은 처음입니다.그래서 mysql 서버와 클라이언트는 통신할 때 같은 소켓을 사용하는 것 같습니다.덧붙입니다socket = /var/mysqld/mysqld.sock
[mysqld] [client] block in my.cnf로 이동하면 작동합니다.
"localhost" 대신 "127.0.0.1"을 사용합니다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
저는 read_default_file로 OPTIONS 특성을 추가하고 my.cnf 파일의 경로를 제공합니다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dbname',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'read_default_file': '/opt/lampp/etc/my.cnf',
}
}
}
호스트를 다음에서 변경해야 합니다.'localhost'
로.'127.0.0.1'
장고 앱 확인해보세요 :)
플라스크안에, 당신은 그것을 사용해도 좋습니다.
app=Flask(__name__)
app.config["MYSQL_HOST"]="127.0.0.1
app.config["MYSQL_USER"]="root"
...
저는 도커를 사용할 때 MySQL을 장고와 연결할 때 이 문제에 직면했습니다.
해라'PORT':'0.0.0.0'
.
사용하지않음'PORT': 'db'
. 도커 외부에서 앱을 실행하려고 하면 작동하지 않습니다.
언급URL : https://stackoverflow.com/questions/18150858/operationalerror-2002-cant-connect-to-local-mysql-server-through-socket-v
'programing' 카테고리의 다른 글
파워셸의 "Git Log" 명령 - 프로세스를 종료할 수 없음 (0) | 2023.11.05 |
---|---|
셸의 파이프로 n개의 명령어를 연결? (0) | 2023.11.05 |
왜 '익명'이스프링 시큐리티에서 인증된 사용자? (0) | 2023.11.05 |
C#에서 단일 Oracle 명령어로 여러 쿼리 실행 (0) | 2023.11.05 |
드롭다운 메뉴를 만들기 위해 Ajax와 JSON을 사용하는 방법은? (0) | 2023.11.05 |