Python – Conexión a base de datos MariaDB

Te mostramos cómo generar una conexión a una base de datos con MariaDB de forma sencilla:

» Más ejemplos de Python

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. 

Conexión a base de datos MariaDB

Creamos una base de datos en MariaDB llamada Pruebas:

Conexión a base de datos MariaDB

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:

Conexión a base de datos MariaDB



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:

Conexión a base de datos MariaDB

Por supuesto, puede insertar o actualizar registros y próximamente agregaremos ejemplos sobre cómo hacerlo. Esperamos que encuentre útil este ejemplo de cómo generar una Conexión a la base de datos de MariaDB en Python.

 

Más información en inglés: https://geekole.com/connect-to-mariadb-in-python/

3 comentarios en «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

    Responder
    • 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.

      Responder
      • 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

        Responder

Deja un comentario

+ 18 = twenty one