MySQL Connector/Python enables Python programs to access MySQL databases, using an API that is compliant with the Python Database API Specification v2.0 (PEP 249). It also contains an implementation of the X DevAPI, an Application Programming Interface for working with the MySQL Document Store.
sudo yum -y install mysql-connector-python
Example:
$ sudo yum install -y mysql-connector-python Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 25 kB 00:00 * base: asi-fs-w.contabo.net Excluding mirror: mirror.sfo12.us.leaseweb.net * epel: ziply.mm.fcix.net * extras: mirror.fcix.net * remi-php74: ftp.riken.jp * remi-safe: ftp.riken.jp Excluding mirror: mirror.mia11.us.leaseweb.net * updates: asi-fs-w.contabo.net base | 3.6 kB 00:00:00 epel | 4.7 kB 00:00:00 extras | 2.9 kB 00:00:00 mysql-connectors-community | 2.6 kB 00:00:00 mysql-tools-community | 2.6 kB 00:00:00 mysql57-community | 2.6 kB 00:00:00 remi-php74 | 3.0 kB 00:00:00 remi-safe | 3.0 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/3): epel/x86_64/updateinfo | 1.0 MB 00:00:00 (2/3): epel/x86_64/primary_db | 7.0 MB 00:00:00 (3/3): remi-safe/primary_db | 2.3 MB 00:00:02 Resolving Dependencies --> Running transaction check ---> Package mysql-connector-python.x86_64 0:8.0.23-1.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved =============================================================================================================== Package Arch Version Repository Size =============================================================================================================== Installing: mysql-connector-python x86_64 8.0.23-1.el7 mysql-connectors-community 11 M Transaction Summary =============================================================================================================== Install 1 Package Total download size: 11 M Installed size: 51 M Downloading packages: mysql-connector-python-8.0.23-1.el7.x86_64.rpm | 11 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : mysql-connector-python-8.0.23-1.el7.x86_64 1/1 Verifying : mysql-connector-python-8.0.23-1.el7.x86_64 1/1 Installed: mysql-connector-python.x86_64 0:8.0.23-1.el7 Complete!
Reference class for ckmysql.py
ckmysql.py
""" " Copyright ckii.com <http://ckii.com> " =================================================== " " @file _lib/ckmysql.py " @brief ckmysql " @author Chun Kang (ck@ckii.com) " " @notes " 2023.01.17 created " """ import mysql.connector class ckmysql(object): # Static variable for object member user = '' password = '' host = '' database = '' connector = None cursor = None def __init__( self, user='nobody', password='my_password', host='127.0.0.1', database='my_db'): self.user = user self.password = password self.host = host self.database = database def init(self): if self.connector == None: self.connector = mysql.connector.connect( user=self.user, password=self.password, host=self.host, database=self.database) self.cursor = self.connector.cursor() return def query( self, sql): self.init() rows = None if (self.cursor): self.cursor.execute(sql) rows = self.cursor.fetchall() return rows
Below example shows the example to use the class defined in ckmysql.py
test.py
from ckmysql import ckmysql db = ckmysql() # if you want to use the default settings defined in the class r = db.query("select * from test limit 5") print(r)
Above case is based in using the default database connection information and below is based in the connection environment like user_id, password, server and database.
from ckmysql import ckmysql db = ckmysql( 'my_id', 'my_password', '127.0.0.1', 'my_db') r = db.query("select * from test limit 5") print(r)