¿Cómo puedo conectarme a MySQL en Python 3 en Windows?

Estoy usando ActiveState Python 3 en Windows y quería conectarme a mi base de datos MySQL. Escuché que mysqldb era el módulo para usar. No puedo encontrar mysqldb para Python 3.

¿Hay un repository disponible donde existen los binarios para mysqldb ? ¿Cómo puedo conectarme a MySQL en Python 3 en Windows?

Actualmente hay algunas opciones para usar Python 3 con mysql:

https://pypi.python.org/pypi/mysql-connector-python

  • Oficialmente respaldado por Oracle
  • Pitón puro
  • Un poco lento
  • No es compatible con MySQLdb

https://pypi.python.org/pypi/pymysql

  • Pitón puro
  • Más rápido que el conector mysql
  • Casi completamente compatible con MySQLdb , después de llamar a pymysql.install_as_MySQLdb()

https://pypi.python.org/pypi/cymysql

  • tenedor de pymysql con aceleraciones C opcionales

https://pypi.python.org/pypi/mysqlclient

  • La biblioteca recomendada de Django.
  • Tenedor amigable del MySQLdb original, espera fusionarse algún día
  • La implementación más rápida, ya que está basada en C
  • El más compatible con MySQLdb, ya que es un tenedor
  • Debian y Ubuntu lo usan para proporcionar paquetes python-mysqldb y python3-mysqldb .

puntos de referencia aquí: https://github.com/methane/mysql-driver-benchmarks

Probablemente deberías usar pymysql – Cliente Pure Python MySQL en su lugar.
Funciona con Python 3.x y no tiene dependencias.

Este cliente Python MySQL puro proporciona una base de datos DB-API a una base de datos MySQL hablando directamente con el servidor a través del protocolo binario cliente / servidor.

Ejemplo:

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

También intenté usar pymysql (en mi máquina Win7 x64, Python 3.3), sin demasiada suerte. Descargué .tar.gz, extract, ejecuté “setup.py install”, y todo parecía estar bien. Hasta que intenté conectarme a una base de datos, y obtuve “KeyError [56]”. Un error que no pude encontrar documentado en ninguna parte.

Así que renuncié a pymysql y me decidí por el conector Oracle MySQL .

Viene como un paquete de instalación y funciona de la caja. Y también parece decentemente documentado.

No probado, pero hay algunos binarios disponibles en:

Binarios no oficiales de Windows

PyMySQL le da a MySQLDb como interfaz también. Podría intentar en su inicialización:

 import pymysql pymysql.install_as_MySQLdb() 

También hay un puerto de mysql-python en github para python3.

https://github.com/davispuh/MySQL-for-Python-3

si desea utilizar MySQLdb primero, debe instalar pymysql en su pc escribiendo cmd of windows

  pip install pymysql 

luego en el shell python, escriba

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

esto establecerá la conexión.

Resumen

Mysqlclient es la mejor alternativa (en mi humilde opinión) porque funciona sin problemas con Python 3+ , sigue las convenciones esperadas (a diferencia del conector mysql), usa el nombre del objeto mysqldb que permite la conveniente transferencia del software existente y Django lo utiliza para las comstackciones de Python 3

¿Hay un repository disponible donde existen los binarios para mysqldb?

Sí. mysqlclient le permite usar funciones mysqldb. Sin embargo, recuerda que este no es un puerto directo de mysqldb, sino una comstackción de mysqlclient

¿Cómo puedo conectarme a MySQL en Python 3 en Windows?

pip install mysqlclient

Ejemplo

 #!/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() 

No puedo encontrar mysqldb para Python 3.

mysqldb aún no se ha portado

Oracle / MySQL proporciona un controlador oficial de Python DBAPI: http://dev.mysql.com/downloads/connector/python/

Lo he usado con Python 3.3 y encontré que funciona muy bien. También funciona con SQLAlchemy.

Ver también esta pregunta: ¿Todavía es demasiado pronto para subir a bordo del tren Python 3?

En mi Mac OS Maverick, bash esto:

  • En tipo de terminal:

    1) mkdir -p ~ / bin ~ / tmp ~ / lib / python3.3 ~ / src 2) exportar TMPDIR = ~ / tmp
    3) wget -O ~ / bin / 2to3
    4) http://hg.python.org/cpython/raw-file/60c831305e73/Tools/scripts/2to3 5) chmod 700 ~ / bin / 2to3 6) cd ~ / src 7) git clone https: // github. com / petehunt / PyMySQL.git 8) cd PyMySQL /
    9) instalación de python3.3 setup.py –install-lib = $ HOME / lib / python3.3 –install-scripts = $ HOME / bin

Después de eso, ingrese el intérprete de python3 y escriba:

  1. importar pymysql . Si no hay ningún error, su instalación está bien. Para la verificación escribe un script para conectarte a mysql con este formulario:

  2. # una secuencia de comandos simple para la conexión MySQL importar pymysql db = pymysql.connect (host = “localhost”, usuario = “root”, passwd = “ *”, db = “biblioteca”) #Sure, esta es información para mi db # cerrar la conexión db.close () *

Ponle un nombre (“con.py” por ejemplo) y guárdalo en el escritorio. En Terminal escribe “cd desktop” y luego $ python con.py Si no hay ningún error, estás conectado con el servidor MySQL. ¡Buena suerte!

CyMySQL https://github.com/nakagami/CyMySQL

He instalado pip en mi Windows 7, con Python 3.3 solo pip install cymysql

(no necesitas cython) rápido y sin dolor

Esto no responde completamente mi pregunta original, pero creo que es importante que todos sepan lo que hice y por qué.

Elegí continuar usando Python 2.7 en lugar de Python 3 debido a la prevalencia de 2.7 ejemplos y módulos en la web en general.

Ahora uso mysqldb y mysql.connector para conectarme a MySQL en Python 2.7. Ambos son geniales y funcionan bien. Creo que mysql.connector es, en última instancia, mejor a largo plazo.

Estoy usando cymysql con python3 en un Raspberry pi. Simplemente instalé: sudo pip3 install cython sudo pip3 install cymysql donde cython no es necesario, pero debería hacer cymysql más rápido

Hasta ahora funciona como un encanto y muy similar a MySQLdb

Este es un tutorial rápido sobre cómo hacer que Python 3.7 trabaje con Mysql
Gracias a todos los que obtuve respuestas a mis preguntas
– Espero que esto ayude a alguien algún día.
————————————————– –
Mi sistema:
Versión de Windows: Pro de 64 bits

REQUISITOS. Descargue e instale estos primero …
1. Descargar Xampp ..
https://www.apachefriends.org/download.html
2. Descarga Python
https://www.python.org/downloads/windows/

————–
//MÉTODO
————–
Instale xampp primero después de la instalación finalizada: instale Python 3.7.
Una vez que haya terminado de instalar ambos, reinicie su sistema de Windows.
Ahora inicie xampp y desde el panel de control: inicie el servidor mysql.
Confirme las versiones abriendo CMD y en el tipo de terminal

 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. 

Esto es para verificar la versión 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 

Esto es para verificar la versión de Python
Ahora que ambos han sido confirmados, ingrese lo siguiente en CMD …

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

Después de que se complete la instalación de pymysql.
cree un nuevo archivo llamado “testconn.py” en su escritorio o donde quiera para un acceso rápido.
Abra este archivo con sublime u otro editor de texto y ponga esto en él.
Recuerde cambiar la configuración para reflejar su base de datos.

 #!/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() 

Ahora en tu CMD – tipo

 c:\Desktop>testconn.py 

Y eso es todo … ahora estás completamente conectado desde un script de python a mysql …
Disfrutar…