Autor Tema: Problema conectar con base de datos MySQL Python no module named mysql.connector  (Leído 15611 veces)

Príncipe_Azul

  • Principiante
  • **
  • Mensajes: 71
    • Ver Perfil
    • Foro ArgentinaIRC - Ayuda de Programación General, IRC y mIRC Scripting!
Hola amigos!!

Tengo el siguiente problema, no puedo conectarme a una base de datos que he hecho desde el panel de PHPMyAdmin, la base de datos está creada, pude crear una tabla y todo parece que está bien, pero cuando intento conectarme, me sale un error.

Estoy intentando conectarme a la db con Python, me bajé este ejecutable:

MySQL-python-1.2.4.win32-py2.7.exe

desde aquí:

https://pypi.python.org/pypi/MySQL-python/1.2.4

y lo instalé y supuestamente se instaló sin problemas, quiero comentar que estoy siguiente este tutorial:

http://codehero.co/python-desde-cero-bases-de-datos/

la verdad está cláro entenderle y no es tan difícil como pensaba (eso creo jeje), vale aclarar que jamás en mi vida trabajé con base de datos, siempre lo hice desde archivos de texto almacenando ahí la información, pero ahora quisiera aprender un poco, al menos lo básico y me encuentro con un problema que no puedo conectarme a la base de datos.

Utilizo este código:

Código: [Seleccionar]
#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb


try:
    # Establecemos la conexión con la base de datos
    bd = MySQLdb.connect("localhost","user_usuario","Prueba123","user_prueba")

    # Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos
    cursor = bd.cursor()

    # Preparamos el query SQL para obtener todos los empleados de la BD
    sql = "SELECT * FROM EMPLEADO"

    # Ejecutamos el comando
    cursor.execute(sql)
    # Obtenemos todos los registros en una lista de listas
    resultados = cursor.fetchall()
    for registro in resultados:
        nombre = registro[0]
        apellido = registro[1]
        edad = registro[2]
        sexo = registro[3]
        salario = registro[4]
        # Imprimimos los resultados obtenidos
        print "nombre=%s, apellido=%s, edad=%d, sexo=%s, salario=%d" % (nombre, apellido, edad, sexo, salario)

    # Nos desconectamos de la base de datos
    bd.close()
except Exception, e:
    print "Error: ", e


raw_input()

y cuando le ejecuto al programa (al código de arriba), demora masomenos 2 segundos y me lanza este error:

Error:  (2003, "Can't connect to MySQL server on 'localhost' (10061)")

desactivé el Firewall y el Antivirus y no hay caso, sigo sin poder conectarme, la verdad y disculpen la ignorancia, pero no se que más se necesita para poder trabajar con la base de datos MySQL desde Python, yo creo que con solo instalar el programa que indiqué arriba, es suficiente, pero cláro, puedo estar muy equivocado, si es así, por favor diganme cuales son los pasos para instalar todo correctamente, tengo Windows 7.

He leído que hay que tener el puerto 3306 abierto y desde el Firewall de Windows lo he abierto en local, anque aparece como cerrado cuando lo intento escaner con la IP local 127.0.0.1

Yo instalé un par de librerías desde el programa ejecutable (como el que comenté más arriba) y siempre se instaló bien y las librerías me funcionan bien.

Espero que por favor me ayuden.

Muchas gracias de antemano!! :)

PD: Acabo de instalar MySQL desde www.mysql.com y me bajado e instalado el programa que está aquí http://dev.mysql.com/downloads/file.php?id=455548 y el puerto 3306 sigue cerrado :S además sigue sin poder conectarse.
« Última modificación: 03 de Agosto 2016, 18:01 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Problema al conectar con base de datos MySQL desde Python
« Respuesta #1 en: 22 de Febrero 2015, 14:35 »
Hola puedes intentar conectar con la base de datos como se explica aquí http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=612:php-consultas-mysql-mysqliconnect-selectdb-query-fetcharray-freeresult-close-ejemplos-cu00841b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193. Tener en cuenta que los archivos php hay que tenerlos en el servidor, en nuestro ordenador local no funcionarán. Si logras conectar por lo menos se puede confirmar que la base de datos está operativa y que el problema puede ser con Python  ::)

Saludos

Príncipe_Azul

  • Principiante
  • **
  • Mensajes: 71
    • Ver Perfil
    • Foro ArgentinaIRC - Ayuda de Programación General, IRC y mIRC Scripting!
Re:Problema al conectar con base de datos MySQL desde Python
« Respuesta #2 en: 22 de Febrero 2015, 21:38 »
Hola amigo!! :D

Justamente ese mismo tutorial lo he estado mirando ayer y me ha servido, aunque no se porqué me devuelve un valor que no es, por ejemplo en vez de devolver un int de 20 me devuelve 1, siempre 1  :o y probé de otra forma y me devuelve el texto "array", esto lo he hecho con un servidor gratuito que tengo y usando la base de datos y una tabla del foro que tengo para las pruebas.

En si, debería funcionar que Python pueda conectar a la base de datos, pero no se que más se necesita instalar, que yo sepa con lo que tengo debería andar, aunque leyendo en Google leí a varias personas hablando del servidor MySQL, osea yo no tengo ese servidor corriendo en mi pc, pero puede que con la librería MySQL sea suficiente, pero me puedo equivocar, en realidad podríamos decir que por ahora me importaría más trabajar con la bd en Python que en PHP, ya que yo programa en Python, pero hasta ahora solamente hice una sola aplicación (en Python) que podría usar la base de datos para acelerar la búsqueda de lo que se le solicite al programa, por ejemplo yo he creado un programa que si vos ponés en un archivo .txt 1 o más IPs, el programa te crea otro archivo con la IP y el País de orígen.

He probado desde mi pc a ver si Python podía conectarse a la base de datos del Foro y devolverme al menos una tabla, pero me sigue diciendo que no puede conectarse en "localhost", me imagino que se podría, he leído a personas que tienen windows y con Python pueden trabajar con su base de datos, la verdad no se que me puede estar faltando o como solucionar este problema.

Saludos y muchas gracias!!

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Problema al conectar con base de datos MySQL desde Python
« Respuesta #3 en: 22 de Febrero 2015, 22:21 »
Hola, no sé qué puede estar ocurriendo, pero si sigues las indicaciones del curso php

Citar
Escribe este código en un editor y guárdalo en un archivo de nombre ejemplo1.php (recuerda que antes debes haber creado la base de datos y creado datos de ejemplo como hemos visto anteriormente). Recuerda también que debes cambiar y poner tus propios valores en las funciones mysqli_connect y mysqli_select_db.

Cuando invoques la ruta por ejemplo www .tu dominio.ejemplobd.php debes obtener por pantalla los resultados que se indican en el curso (previamente debes haber creado la tabla en la base de datos  e introducido algunos datos), si no los obtienes... algo tiene que haber mal.

Sobre la conexión con Python, aquí creo que te puedes orientar http://stackoverflow.com/questions/372885/how-do-i-connect-to-a-mysql-database-in-python

Pero si no tienes bien la base de datos no podrás conectar, por esto para mí lo primero sería probar que la base de datos esté bien.  Si estás usando localhost con tu computador (mediante wampp o xampp) también puedes hacer la prueba básica con php invocando la ruta localhost/ejemplobd.php si pones el archivo en la raíz de tu carpeta www.

Saludos

Príncipe_Azul

  • Principiante
  • **
  • Mensajes: 71
    • Ver Perfil
    • Foro ArgentinaIRC - Ayuda de Programación General, IRC y mIRC Scripting!
Re:Problema al conectar con base de datos MySQL desde Python
« Respuesta #4 en: 23 de Febrero 2015, 09:31 »
Bien, muchas gracias, con lo de PHP no hay drama, eso probando lo resuelvo, no es importante ya que no programo en PHP y por ahora no es necesario.

Yo quisiera en Python porque cuando programo en el mismo, puedo necesitar crear una base de datos, con usar un archivo de texto siempre me sirvió muchísimo, es decir usar un TXT como base de datos, manejo bien las estructas que hay adentro para poder acomodar todo ahí y leerlo, pero he leído una vez en un foro que un usuario le tardaba muchísimo en leer (recuerdo que eran como 20 segundos) la información que había en un TXT, ya que este usuario tenía un negocio y utilizaba una interfaz gráfica y desde ahí iba manejando todos los artículos que tenía en su negocio los agregaba en ese TXT usandolo de bd, pero comentó que como el tiempo en leer era demasiado, utilizó base de datos MySQL y el tiempo redujo a 2 segundos, por lo que la diferencia es mucha, por eso tengo ese interés, pero obviamente que si va a hacer mucha info es lógico que va a tardar, en realidad a mi por ej Python no es lento para nada, es bastante rápido, pero si trabajaría con MySQL se que voy a aumentar la velocidad de lectura de los datos o por lo menos eso pienso ya que la librería MySQL está escrita en C.

Otra alternativa sería probar oursql que estuve leyendo, parece que es lo mismo que MySQL aunque es alternativa, una opción más...

Otra forma sería usar Cython, crear una librería en C y llamarla desde un programa en Python, eso ayudaría mucho en cuanto a la velocidad. Esta librería en C no haría otra cosa que leer, pero leer que? ahh ahí ya utilizaría un archivo TXT como una base de datos, que sería digamos lo mismo ya que ese archivo contendría toda la info.

Por último amigo estuve probando otros códigos de ejemplo y tampoco me funciona, leyendo en la web que me has pasado, ví este conector (que ya lo había visto antes y también ya lo había tratado de instalar):

http://dev.mysql.com/downloads/connector/python/

y he tratado de instalarlo nuevamente, al correcto:


Windows (Architecture Independent), MSI Installer
Python 2.7
(mysql-connector-python-2.0.3-py2.7.msi)


ya que los otros 2 son para versiones superiormes a 3.0 y yo tengo Python 2.7.5

peeeeroooo... cuando trato de instalarlo me sale este error:



jajaja como no va a funcionar, si tengo Python 2.7.* (Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32).

de igual forma probé este código a ver que pasaba:



Código: [Seleccionar]
try:
    import mysql.connector

    cnx = mysql.connector.connect(user='mi_usuario', password='mi_clave,
                                  host='127.0.0.1',
                                  database='mi_base_de_datos')

    try:
       cursor = cnx.cursor()
       cursor.execute("""
          SELECT 3 FROM your_table
       """)
       result = cursor.fetchall()
       print result
    finally:
        cnx.close()

except Exception, e:
    print e


raw_input()

y cuando lo mando a correr obtengo este error:



la librería del conector no existe y seguro que por eso no se puede conectar a la bd, osea que podríamos decir que la solución sería instalar el programa que recién comenté, porque es justamente un conector para que Python pueda conectar a la base de datos, pero por alguna extraña razón, me da ese error.

Con respecto a que la base de datos funcione, es cierto que la que yo he creado no se si será válida y es como vos decís, debería probarla primero en PHP, pero yo uso la base de datos del Foro, una pequeña que tengo y debería andar, pero no! no me funciona tampoco, me sigue saliendo ese error, el problema es porque no puede conectarse pero no por la base de datos, la del foro está impecable y debería funcionar.

Voy a seguir probando a ver si puedo solventar esto, raro Alex, pero bueno por algo todo pasa.

Gracias hermano nuevamente!! :) :)
« Última modificación: 23 de Febrero 2015, 09:35 por Príncipe_Azul »

Andres20

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Re:Problema al conectar con base de datos MySQL desde Python
« Respuesta #5 en: 29 de Julio 2016, 06:22 »
Tuve un problema parecido recién comencé a trabajar con bases de datos en python, no se si ya lograste solucionar el problema, pero sin embargo voy a explicar que fue lo que hice para solucionar este problema:

1. Descargue el servidor de bases de datos MySQL desde su pagina oficial.
2. Lo instale en el equipo
3. Instale el conector de python para MySQL, este lo puede descargar desde la pagina oficial de MySQL.
4. Instale el Modulo MySQLdb para python, hay que tener en cuenta la arquitectura del python que estoy utilizando, es decir si es de 32 o 64 bits porque si no le aparece el error de que no se encuentra python y es porque tal vez se esta intentando instalar el modulo de 32 bits para un python de 64 bits y viceversa, debe ser python de 32 bits y modulo MySQLdb de 32 o de 64 y 64 para que pueda haber compatibilidad.

Es aconsejable que tenga instalado el servidor MySQL en su equipo, y luego si quiere intenta instalarlo en otro equipo y realizar la conexión.

Yo al comienzo también creía que con solo instalar el modulo de MySQLdb y el conector para MySQL ya podía trabajar con la base de datos, pero no es así, el modulo y el conector solo me permiten conectarme con la base de datos para realizar consultas o insertar datos, etc.

Pero para poder conectarme y realizar las consultas o insertar algún dato debo  tener instalado el servidor de base datos MySQL en algún lugar, puede ser en mi equipo (localhost) o en un equipo remoto.
« Última modificación: 29 de Julio 2016, 06:24 por Andres20 »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Gracias Andres20 por el aporte

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".