현재 python 3.7을 사용하는 macOS 10.15에 MySQL 8.0.19가 설치되어 있습니다. 가상 환경 설정을 사용하여 VScode에서 개발. phpmyadmin에서도 로컬 데이터베이스를 만들었습니다. 어쨌든 가능한 연결하고 싶습니다. 스크립트:
import pymysql
print("Before")
connection = pymysql.connect(host='localhost',
user='myUserName', password='myPassword', db='db_name', charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
print("After")
스크립트를 실행하면 실행이 무기한 중단됩니다. "After"를 인쇄 한 후 실행을 종료해야합니다. 트랙백은 :
Traceback (most recent call last):
File "connect.py", line 5, in <module>
user='myUserName', password='myPassword', db='db_name', charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
File "/Users/name/Documents/Work/Connection Test/env/lib/python3.7/site-
packages/pymysql/__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "/Users/name/Documents/Work/Connection Test/env/lib/python3.7/site-
packages/pymysql/connections.py", line 325, in __init__
self.connect()
File "/Users/name/Documents/Work/Connection Test/env/lib/python3.7/site-
packages/pymysql/connections.py", line 598, in connect
self._get_server_information()
File "/Users/name/Documents/Work/Connection Test/env/lib/python3.7/site-
packages/pymysql/connections.py", line 975, in _get_server_information
packet = self._read_packet()
File "/Users/name/Documents/Work/Connection Test/env/lib/python3.7/site-
packages/pymysql/connections.py", line 657, in _read_packet
packet_header = self._read_bytes(4)
File "/Users/name/Documents/Work/Connection Test/env/lib/python3.7/site-
packages/pymysql/connections.py", line 691, in _read_bytes
data = self._rfile.read(num_bytes)
File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/
python3.7/socket.py", line 589, in readinto
return self._sock.recv_into(b)
KeyboardInterrupt
왜 이런 일이 발생하는지 모릅니다. 여기서 무슨 일이 일어나고 있습니까? 스택 오버플로에 대한 많은 질문을 검색했지만 아무도 나를 도왔습니다.
pymysql connect 함수에 "unix_socket"매개 변수를 추가하여 문제가 해결되었습니다. 여기에 답변보기 : 여기 에 링크 설명 입력
import pymysql
print("Before")
conn = pymysql.connect(db='w_dev', user='root', passwd='celebrate',
unix_socket="/tmp/mysql.sock")
print("After")
이 스크립트는 작동했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다