Te mostramos cómo generar una conexión a una base de datos con MariaDB de forma sencilla:
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:
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/
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
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.
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