Windows의 Python 3에서 MySQL에 어떻게 연결할 수 있습니까?


145

Windows에서 ActiveState Python 3을 사용하고 있으며 MySQL 데이터베이스에 연결하고 싶었습니다. 그것이 mysqldb사용할 모듈 이라고 들었습니다 . mysqldb파이썬 3을 찾을 수 없습니다 .

바이너리가 존재하는 저장소가 mysqldb있습니까? Windows의 Python 3에서 MySQL에 어떻게 연결할 수 있습니까?


비공식 바이너리 링크에 대한 casevh 덕분에,하지만 너무 조급했다 그리고 내가 파이썬 2.7을 설치 그래서 대중은 여전히 ... python2를 사용하고있는 것으로 나타나고에서 MySQLdb 설치 codegood.com/archives/129
panofish


1
핍을 입력 할 때마다 배가 rn니다. 7 년 세고.
Ska

답변:


274

현재 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


26
pip install mysqlclient 그냥 나를 위해 했다! 다양한 옵션 목록을 제공해 주셔서 감사합니다.
ILMostro_7

4
mysqlclient방금 Python3.4 + Django + Passenger + Dreamhost 설치에서 일했습니다.
ryanjdillon


mysqlclient가로 debian에있는 testing것처럼 python3-mysqldb보이지만에 없습니다 stable. 다음 버전에있을 것입니다.
Collin Anderson

우분투에 mysql 커넥터를 설치하려면 다음과 같은 apt를 사용할 수 있습니다sudo apt-get install python3-mysql.connector
peiman F.

67

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()

14
불행하게도이 일어날 제로 문서화 된 라이브러리의 그냥 일
'O0.

7
@Lohoris : 문제없이 사용하려면 어떻게해야합니까?
Oleh Prypin

Python 3.x가 설치된 Windows 7에서는 이것을 설치할 수 없습니다. 아무도 어떻게 알아?
paul

3
여기에 Python 버전 3.3.1이 설치되어 있지 않습니다. 라는 모듈 누락에 대해 불평합니다 constants.
Pijusn

@Pius 잘못하고 있기 때문에. 방금 확인하면 작동합니다.
Oleh Prypin

7

또한 pymysql (Win7 x64 컴퓨터에서 Python 3.3)을 너무 운이없이 사용해 보았습니다. .tar.gz를 다운로드하고 압축을 풀고 "setup.py install"을 실행했는데 모든 것이 정상으로 보였습니다. 데이터베이스에 연결하려고 할 때까지 "KeyError [56]"이 나타납니다. 어디서나 문서를 찾을 수없는 오류.

그래서 나는 pymysql을 포기하고 Oracle MySQL 커넥터 에 정착했습니다 .

설치 패키지로 제공되며 기본적으로 작동합니다. 또한 문서화 된 것으로 보입니다.


나는 MySQLdb를 사용하고 있었고 훌륭하게 작동했지만 분명히 이것이 시간이 지남에 따라 사실상의 표준이 될 것으로 기대합니다.
panofish

6

MySQLdb를 먼저 사용하려면 Windows의 cmd를 입력하여 PC에 pymysql을 설치해야합니다

    pip install pymysql

그런 다음 파이썬 쉘에서

    import pymysql
    pymysql.install_as_MySQLdb()
    import MySQLdb
    db = MySQLdb.connect("localhost" , "root" , "password")

연결이 설정됩니다.



5

요약

MysqlclientPython 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는 아직 포팅되지 않았다




1

내 맥 OS 매버릭에서 이것을 시도하십시오 :

그런 다음 python3 인터프리터에 입력하고 다음을 입력하십시오.

  1. 수입 pymysql . 오류가 없으면 설치가 정상입니다. 확인을 위해 다음 형식으로 mysql에 연결할 스크립트를 작성하십시오.

  2. # MySQL 연결 가져 오기를위한 간단한 스크립트 pymysql db = pymysql.connect (host = "localhost", user = "root", passwd = "* ", db ="biblioteca ") # 물론, 이것은 내 데이터베이스에 대한 정보입니다. # 연결을 닫습니다 db.close () *

이름 (예 : "con.py")을 지정하고 데스크탑에 저장하십시오. 터미널에서 "cd desktop"을 입력 한 다음 $ python con.py 오류가 없으면 MySQL 서버와 연결된 것입니다. 행운을 빕니다!



0

이것은 내 원래의 질문에 완전히 대답하지는 않지만, 내가 한 일과 이유를 모든 사람에게 알리는 것이 중요하다고 생각합니다.

나는 일반적으로 웹에서 2.7 예제와 모듈이 널리 퍼져 있기 때문에 파이썬 3 대신 파이썬 2.7을 계속 사용하기로 결정했습니다.

이제 mysqldb와 mysql.connector를 모두 사용하여 Python 2.7에서 MySQL에 연결합니다. 둘 다 훌륭하고 잘 작동합니다. 그러나 mysql.connector는 궁극적으로 장기적으로 더 좋습니다.


여전히 Python 2.7을 사용하고 있는지 궁금합니다. 일반적으로 Python 3으로 전환하는 것이 정말 중요하다고 생각합니다. 많은 프로젝트에서 Python 2.7을 사용하여 새 프로젝트를 선택하는 많은 프로그래머가 있다는 사실에 놀랐습니다. 상황이 어떻게 해결 되었습니까?
vy32

@ vy32 내가 직접 파이썬 3. Red Hat Enterprise Linux를 지원하지 않는 많은 서버 운영체제는 여전히 파이썬 함께 번들로 제공되고 있던 고려하는 경우가 적은 py27을 선택 개발자가 놀랄 것 같아요 2.6 최신 버전까지, 오직 심지어 하나 py27이 있습니다.
coredumperror 18.32에

python 2.7을 사용하는 또 다른 이유는 python을 지원하는 Maya가 2.7을 내부적으로 사용하기 때문입니다. BTW ... Maya의 Python을 통해 MySQL에 연결 해야하는 경우 순수한 python mysql 커넥터를 사용하십시오.
panofish

0

나는 단순히 다음과 같이 설치 한 라즈베리 파이에서 python3과 함께 cymysql을 사용하고 있습니다. sudo pip3 install cython sudo pip3 install cymysql 여기서 cython은 필요하지 않지만 cymysql을 더 빨리 만들어야합니다

지금까지는 매력처럼 작동하며 MySQLdb와 매우 유사합니다.


0

이것은 Python 3.7을 Mysql과 함께 사용하는 방법에 대한 빠른 자습서입니다.
내 질문에 대한 답변을 얻은 모든 사람에게 감사합니다
. 언젠가 누군가에게 도움이되기를 바랍니다.
-------------------------------------------------- -
내 시스템 :
Windows 버전 : Pro 64 비트

요구 사항 .. 다운로드 및이 처음 ... 설치
1. 다운로드 XAMPP를 ..
https://www.apachefriends.org/download.html
2. 다운로드 파이썬
https://www.python.org/downloads/windows/

- ------------
// METHOD
--------------
설치가 끝난 후 xampp를 먼저 설치하십시오-Python 3.7을 설치하십시오.
둘 다 설치가 완료되면 Windows 시스템을 재부팅하십시오.
이제 xampp를 시작하고 제어판에서 mysql 서버를 시작하십시오.
CMD를 열고 터미널 유형으로 버전을 확인하십시오.

c:\>cd c:\xampp\mysql\bin

c:\xampp\mysql\bin>mysql -h localhost -v
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.21-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

이것은 MYSQL 버전을 확인하는 것입니다

c:\xampp\mysql\bin>python
Python 3.7.0b3 (v3.7.0b3:4e7efa9c6f, Mar 29 2018, 18:42:04) [MSC v.1913 64 bit (AMD64)] on win32

이것은 파이썬 버전을 확인하는 것입니다.
이제 둘 다 CMD에 다음을 입력하여 확인했습니다 ...

c:\xampp\mysql\bin>pip install pymysql

pymysql 설치가 완료된 후
바탕 화면이나 빠른 액세스를 위해 "testconn.py"라는 새 파일을 만듭니다.
숭고한 텍스트 편집기 나 다른 텍스트 편집기로이 파일을 열고 파일을 넣으십시오.
데이터베이스를 반영하도록 설정을 변경해야합니다.

#!/usr/bin/python
import pymysql
pymysql.install_as_MySQLdb() 

import MySQLdb
db = MySQLdb.connect(user="yourusernamehere",passwd="yourpasswordhere",host="yourhosthere",db="yourdatabasehere")
cursor = db.cursor()
cursor.execute("SELECT * from yourmysqltablehere")
data=cursor.fetchall()
for row in data :
    print (row)
db.close()

이제 CMD에서-유형

c:\Desktop>testconn.py

그리고 그게 ... 이제 파이썬 스크립트에서 mysql로 ​​완전히 연결되었습니다 ...
즐기십시오 ...


0

pymysql 가져 오기

열린 데이터베이스 연결

db = pymysql.connect ( "localhost", "root", "", "ornament")

cursor () 메소드를 사용하여 커서 객체 준비

커서 = db.cursor ()

sql = "SELECT * FROM 항목"

cursor.execute (SQL)

목록 목록에서 모든 행을 가져옵니다.

results = rows. 결과의 cursor.fetchall () : item_title = row [1] comment = row [2] print ( "항목의 제목은 다음과 같습니다 = % s, 주석은 다음과 같습니다 = % s"% \ (item_title, 논평))

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.