Windows에서 ActiveState Python 3을 사용하고 있으며 MySQL 데이터베이스에 연결하고 싶었습니다. 그것이 mysqldb
사용할 모듈 이라고 들었습니다 . mysqldb
파이썬 3을 찾을 수 없습니다 .
바이너리가 존재하는 저장소가 mysqldb
있습니까? Windows의 Python 3에서 MySQL에 어떻게 연결할 수 있습니까?
답변
현재 mysql과 함께 Python 3을 사용하기위한 몇 가지 옵션이 있습니다.
https://pypi.python.org/pypi/mysql-connector-python
- 오라클의 공식 지원
- 순수한 파이썬
- 조금 느려
- MySQLdb와 호환되지 않습니다
https://pypi.python.org/pypi/pymysql
- 순수한 파이썬
- mysql-connector보다 빠름
MySQLdb
호출 후 와 거의 완벽하게 호환pymysql.install_as_MySQLdb()
https://pypi.python.org/pypi/cymysql
- 선택적 C 속도 향상 기능을 갖춘 pymysql 포크
https://pypi.python.org/pypi/mysqlclient
- 장고 추천 도서관.
- 원래 MySQLdb의 친절한 포크는 언젠가 다시 합류하기를 희망합니다.
- C 기반이므로 가장 빠른 구현입니다.
- 포크이므로 MySQLdb와 가장 호환됩니다.
- 데비안과 우분투는 모두 제공하기 위해 그것을 사용
python-mysqldb
하고python3-mysqldb
패키지를.
여기에 벤치 마크 : https://github.com/methane/mysql-driver-benchmarks
답변
pymysql -Pure Python MySQL 클라이언트를 대신 사용해야 합니다.
Python 3.x에서 작동하며 종속성이 없습니다.
이 순수 Python MySQL 클라이언트는 이진 클라이언트 / 서버 프로토콜을 통해 서버와 직접 통신하여 MySQL 데이터베이스에 DB-API를 제공합니다.
예:
import pymysql conn = pymysql.connect(host='127.0.0.1', unix_socket='/tmp/mysql.sock', user='root', passwd=None, db='mysql') cur = conn.cursor() cur.execute("SELECT Host,User FROM user") for r in cur: print(r) cur.close() conn.close()
답변
또한 pymysql (Win7 x64 컴퓨터에서 Python 3.3)을 너무 운이없이 사용해 보았습니다. .tar.gz를 다운로드하고 압축을 풀고 “setup.py install”을 실행했는데 모든 것이 정상으로 보였습니다. 데이터베이스에 연결하려고 할 때까지 “KeyError [56]”이 나타납니다. 어디서나 문서를 찾을 수없는 오류.
그래서 나는 pymysql을 포기하고 Oracle MySQL 커넥터 에 정착했습니다 .
설치 패키지로 제공되며 기본적으로 작동합니다. 또한 문서화 된 것으로 보입니다.
답변
MySQLdb를 먼저 사용하려면 Windows의 cmd를 입력하여 PC에 pymysql을 설치해야합니다
pip install pymysql
그런 다음 파이썬 쉘에서
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb
db = MySQLdb.connect("localhost" , "root" , "password")
연결이 설정됩니다.
답변
답변
요약
Mysqlclient 는 Python 3+ 와 완벽하게 작동하고 (mysql 커넥터와 달리) 예상 규칙을 따르고 , 기존 소프트웨어의 편리한 포팅을 가능하게하는 객체 이름 mysqldb 를 사용 하고 Python 3 빌드를 위해 Django 에서 사용 하기 때문에 최상의 대안 (IMHO)
입니다
mysqldb에 바이너리가있는 저장소가 있습니까?
예. mysqlclient를 사용하면 mysqldb 함수를 사용할 수 있습니다. 그러나 이것은 mysqldb 의 직접 포트 가 아니라 mysqlclient의 빌드 라는 것을 기억하십시오.
Windows의 Python 3에서 MySQL에 어떻게 연결할 수 있습니까?
pip install mysqlclient
예
#!/Python36/python
#Please change above path to suit your platform. Am running it on Windows
import MySQLdb
db = MySQLdb.connect(user="my-username",passwd="my-password",host="localhost",db="my-databasename")
cursor = db.cursor()
cursor.execute("SELECT * from my-table-name")
data=cursor.fetchall()
for row in data :
print (row)
db.close()
Python 3 용 mysqldb를 찾을 수 없습니다.
mysqldb는 아직 포팅되지 않았다
답변
PyMySQL은 MySQLDb와 같은 인터페이스를 제공합니다. 초기화를 시도 할 수 있습니다.
import pymysql
pymysql.install_as_MySQLdb()
또한 python3 용 github에 mysql-python 포트가 있습니다.