Python – Conexión a base de datos MariaDB

Antes de comenzar es necesario importar el conector de MySQL que funciona también para MariaDB.  En nuetros ejemplos estaremos usando PyCharm Community Edition, que es uno de los editores más potentes y más ampliamente usados para desarrollar en Python.

Creamos una base de datos en MariaDB llamada Pruebas:

Creamos también una tabla llamada Usuarios:

CREATE TABLE Usuarios (
  ID int(11) NOT NULL AUTO_INCREMENT,
  USERNAME varchar(100) NOT NULL,
  PASSWORD varchar(100) NOT NULL,
  NOMBRE varchar(100) DEFAULT NULL,
  PRIMARY KEY (ID)
)

Agregamos algunos registros de prueba:





Y finalmente el código:

import mysql.connector as mariadb

# decodigo.com

mariadb_conexion = mariadb.connect(host='localhost', port='3306',
                                   user='root', password='password', database='Pruebas')
cursor = mariadb_conexion.cursor()

try:
    cursor.execute("SELECT ID,USERNAME,PASSWORD,NOMBRE FROM Usuarios")
    for id_usuario, username, password, nombre in cursor:
        print("id: " + str(id_usuario))
        print("username: " + username)
        print("password: " + password)
        print("nombre: " + nombre)

except mariadb.Error as error:
    print("Error: {}".format(error))

mariadb_conexion.close()

Las cosas que debes entender de este bloque de código son las siguientes:

Desde luego debes importar el conector de la base de datos:

import mysql.connector as mariadb

Creas una conexión con el host, puerto, usuario, password y nombre de la base de datos:

mariadb_conexion = mariadb.connect(host=’localhost’, port=’3306′, user=’root’, password=’password’, database=’Pruebas’)

Realizas el query con la función execute, que puede llevar valores para el WHERE, aunque en este caso no lo hacemos:

cursor.execute(«SELECT ID,USERNAME,PASSWORD,NOMBRE FROM Usuarios»)

Imprimimos los datos de cada registro en un ciclo for a partir de los datos contenidos en cursor y después de la llamada a la función execute:

print(«id: » + str(id_usuario))

print(«username: » + username)

print(«password: » + password)

print(«nombre: » + nombre)

Y finalmente y no menos importante, cerramos la conexión

mariadb_conexion.close()

Al final, al poner en funcionamiento tu código obtendrás algo como esto:

Desde luego, puedes insertar o actualizar registros y proximamente agregaremos ejemplos sobre como hacerlo. Este sólo es un ejemplo sencillo que te permitirá comenzar, esperamos que te sea de utilidad.

 

3 thoughts on “Python – Conexión a base de datos MariaDB”

  1. Hola buenas, he probado a hacer lo que usted dice con mi propia base de datos, y me aparece el siguiente error:

    Traceback (most recent call last):
    File «/home/pi/.local/lib/python3.5/site-packages/mysql/connector/network.py», line 509, in open_connection
    self.sock.connect(sockaddr)
    ConnectionRefusedError: [Errno 111] Connection refused

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File «/home/pi/Desktop/pysql2.py», line 3, in
    mariadb_conexion = mariadb.connect(host=’localhost’,port=’3306′,user=’ja’,password=’rootroot’,database=’usuarios’)
    File «/home/pi/.local/lib/python3.5/site-packages/mysql/connector/__init__.py», line 179, in connect
    return MySQLConnection(*args, **kwargs)
    File «/home/pi/.local/lib/python3.5/site-packages/mysql/connector/connection.py», line 95, in __init__
    self.connect(**kwargs)
    File «/home/pi/.local/lib/python3.5/site-packages/mysql/connector/abstracts.py», line 716, in connect
    self._open_connection()
    File «/home/pi/.local/lib/python3.5/site-packages/mysql/connector/connection.py», line 206, in _open_connection
    self._socket.open_connection()
    File «/home/pi/.local/lib/python3.5/site-packages/mysql/connector/network.py», line 512, in open_connection
    errno=2003, values=(self.get_address(), _strioerror(err)))
    mysql.connector.errors.InterfaceError: 2003: Can’t connect to MySQL server on ‘localhost:3306’ (111 Connection refused)

    Alguna solucion?
    Gracias

    1. Hola, el error parece más un problema de conexión, puertos o permisos para acceder a la base de datos que de código. Revisa los permisos de conexión de tu usuario en MySQL.

      1. dice conexion rechazada, el problema de donde esta alojada la base de datos que por defecto no acepta conexiones de fuera, tienes que buscar solucion por ese lado, el codigo este va perfecto

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *