Esta pagina se ve mejor con JavaScript habilitado

Python MySQL

 ·  🎃 kr0m

Una tarea muy común para un sysadmin son los scripts de automatización de tareas, en ocasiones estos scripts precisan de datos externos como puede ser una base de datos MySQL, en este artículo explicaré como de sencillo es acceder a esta desde Python.

La tabla de prueba es muy sencilla:

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | YES  |     | NULL    |       |
| role     | varchar(20) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

El script insertará dos usuarios, consultará la tabla, eliminará uno de los usuarios y volverá a consultar:

vi mysql.py

#!/usr/local/bin/python3.8
try:  
    import pymysql  
except ImportError:  
    print('Please install dependency: pip install pymysql')  
    sys.exit(1)
  
db = pymysql.connect(unix_socket="/tmp/mysql.sock", user="root", passwd="XXXXXX", db="testpython")
cursor = db.cursor()

sql = "INSERT INTO testtable (username, role) VALUES (%s, %s)"
cursor.execute(sql, ('kr0m', 'sysadmin'))

sql = "INSERT INTO testtable (username, role) VALUES (%s, %s)"
cursor.execute(sql, ('kr0m2', 'sysadmin'))

cursor.execute("SELECT username, role FROM testtable;")  
for row in cursor.fetchall():  
    print('------------------------------------------')  
    username = row[0]  
    print('Username: %s' % username)  

    role = row[1]  
    print('Role: %s' % role)

print('==========================================')
print('-- Deleting kr0m user')
sql = "DELETE FROM testtable WHERE username='kr0m'"
cursor.execute(sql)

cursor.execute("SELECT username, role FROM testtable;")  
for row in cursor.fetchall():  
    print('------------------------------------------')  
    username = row[0]  
    print('Username: %s' % username)  

    role = row[1]
    print('Role: %s' % role)

La salida por pantalla es la siguiente:

------------------------------------------
Username: kr0m
Role: sysadmin
------------------------------------------
Username: kr0m2
Role: sysadmin
==========================================
-- Deleting kr0m user
------------------------------------------
Username: kr0m2
Role: sysadmin
Si te ha gustado el artículo puedes invitarme a un RedBull aquí