Python MySQL script
Om via een python script een MySQL database aan te spreken moet men de zogenaamde “Python MySQLdb” module installeren voor communicatie in python met MySQL, nu zal dit bijvoorbeeld op de Raspberry Pi niet een groot probleem zijn, want daarop is immers IPKG en APT-GET werkend,…maar op een Synology NAS word het een ander verhaal, ja…..je kan een bootstrapper installeren en IPKG werken krijgen op je NAS, maar dat is wel heel vergezocht.
Communicatie kan immers ook via de commandline, je kan in het python script os.system() aanspreken om een linux commanline te runnen, hieronder vind je een voorbeeldscript (python 2.7) om MySQL queries uit te voeren vanuit een python script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#!/usr/bin/python ####################################################################### # # Python MySQL voorbeeldscript door Sebastiaan Ebeltjes / DomoticX.nl # # Pythonversie: 2.7.x # # Gebruik van dit script is op eigen risico! # # # INFO: # # MySQL in DSM 4.2/5.0/5.1 (Synology NAS): # /usr/syno/mysql/bin/mysql # # Standaard MySQL poort: # 3306 # ####################################################################### import os # [INSTELLINGEN] mysqlbin="/usr/syno/mysql/bin/mysql" mysqlhost="localhost" mysqlport="3306" mysqluser="root" mysqlpass="'wachtwoord'" # [SQL COMMANDO] sqlcmd="'show databases;'" # [SCRIPT] os.system(mysqlbin + " -h" + mysqlhost + " -P" + mysqlport + " -u" + mysqluser + " -p" + mysqlpass + " -e " + sqlcmd) |
Hieronder het script in actie:
Het SQL commando als functie in python
Om het nog makkelijker te maken en om niet de gehele SQL query telkens opneiuw in te hoeven tikken, kun je ook gebruik maken van een functie, zie hieronder:
Let er op dat je altijd eerst de funties definieert voordat je er gebruik van gaat maken!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#!/usr/bin/python ####################################################################### # # Python MySQL voorbeeldscript door Sebastiaan Ebeltjes / DomoticX.nl # # Pythonversie: 2.7.x # # Gebruik van dit script is op eigen risico! # # # INFO: # # MySQL in DSM 4.2/5.0/5.1 (Synology NAS): # /usr/syno/mysql/bin/mysql # # Standaard MySQL poort: # 3306 # ####################################################################### import os # [INSTELLINGEN] mysqlbin="/usr/syno/mysql/bin/mysql" mysqlhost="localhost" mysqlport="3306" mysqluser="root" mysqlpass="'wachtwoord'" # [FUNCTIE] def sql(sqlcmd): os.system(mysqlbin + " -h" + mysqlhost + " -P" + mysqlport + " -u" + mysqluser + " -p" + mysqlpass + " -e " + sqlcmd) # [SQL COMMANDO] sql("'create database nieuwe_database;'") sql("'show databases;'") |