Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Insertar datos en mysql remoto
#1
He hecho mil pruebas , en local todo correcto , necesito grabar unos datos en el servidor remoto y no hay manera de conectar . 

Traceback (most recent call last):
  File "C:\Python27\Proyectos\Mysql.py", line 31, in <module>
    p=run_query("SELECT * FROM fran.Lector")
  File "C:\Python27\Proyectos\Mysql.py", line 15, in run_query
    conn = MySQLdb.connect(*datos) # Conectar a la base de datos
  File "C:\Python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (1045, "Access denied for user 'root'@'185.147.18.73' (using password: YES)")

Si desde mi ordenador accedo a myphp con los mismos datos tengo acceso .
Responder
#2
Me gustaría ver la tupla o lista datos que tienes en tu código. No los datos en sí sino más bien la estructura, por ejemplo: (host, user, password, ...).

¿Chequeaste que coincida con los argumentos que espera la función connect? De hecho se recomienda que se especifique el nombre de los argumentos.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
# -*- coding: cp1252 -*-

import MySQLdb


DB_HOST = 'hostremoto'
DB_USER = 'usuario'
DB_PASS = 'pass'
DB_NAME = 'basededatos'

def run_query(query=''):
   
       datos = [DB_HOST, DB_USER, DB_PASS, DB_NAME]

       conn = MySQLdb.connect(*datos) # Conectar a la base de datos
       cursor = conn.cursor()         # Crear un cursor
       cursor.execute(query)          # Ejecutar una consulta

       if query.upper().startswith('SELECT'):
            data = cursor.fetchall()   # Traer los resultados de un select
       else:
            conn.commit()              # Hacer efectiva la escritura de datos
            data = None

       cursor.close()                 # Cerrar el cursor
       conn.close()                   # Cerrar la conexión

       return data

if __name__ == '__main__':
   p=run_query()

Este es el codigo , en mysql en mi pc conecta bien
Responder
#4
He estado buscando informacion y parece ser que mysql por defecto no acepta conexiones remotas , tendre que pedir al proveedor que me permita conectar remotamente.

Me han dicho que tenemos un usuario para hacer eso , pero que hay que conectar por un puerto determinado , como le indico al conector python el puerto?
Responder
#5
Ya he conseguido conectar , pero no consigo insertar datos .
Responder
#6
¿Qué problema tienes al insertar datos? De todas forma tu función es muy poco eficiente pues abre y cierra una conexión por cada consulta. Deberías realizar la conexión al comienzo de tu programa y cerrarla al final.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)