programing

작동 오류: (2002, "socket '/var/run/mysqld/mysqld를 통해 로컬 MySQL 서버에 연결할 수 없습니다.양말'(2))

lovejava 2023. 11. 5. 10:47

작동 오류: (2002, "socket '/var/run/mysqld/mysqld를 통해 로컬 MySQL 서버에 연결할 수 없습니다.양말'(2))

장고의 mysql 데이터베이스에 접속할 때 오류가 발생합니다.

  1. mysql 서버가 실행되고 있습니다.

  2. /var/run/mysqld/mysqld. sock이 없습니다.

  3. 내가 뛸때$ find / -name *.sock -type s, 저는 /tmp/mysql.sock 및 기타 관련 없는 출력만 받습니다.

  4. 추가했습니다.socket = /tmp/mysql.sock/etc/my.cnf로 전송합니다.그리고 나서 mysql을 재설정하고, django shell을 빠져나와 mysql 데이터베이스에 연결했습니다.여전히 같은 오류가 발생했습니다.

많이 찾아봤는데 아직도 방법을 잘 모르겠어요.

어떤 도움이라도 좋습니다.미리 감사드립니다.

그냥 몇가지 방법을 시도했을 뿐입니다.그리고 그것은 동작한다.저는 다음과 같이 했습니다.

  1. 더하다socket = /tmp/mysql.sock.mysql 서버를 다시 시작합니다.
  2. 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