Skip to main content

Python MySQL Driver using Cython

Project description

What’s CyMySQL

This package contains a python MySQL client library.

It is a fork project from PyMySQL https://pymysql.readthedocs.io/en/latest/.

CyMySQL is accerarated by Cython.

Documentation on the MySQL client/server protocol can be found here: http://dev.mysql.com/doc/internals/en/client-server-protocol.html

Requirements

  • Python 3.10+

  • MySQL 5.7 or higher, MariaDB

Installation

With cythonize

$ pip install cymysql

Or without cythonize

$ NO_CYTHON=1 pip instal cymysql

Example

Python Database API Specification v2.0

https://peps.python.org/pep-0249/

import cymysql
conn = cymysql.connect(host='127.0.0.1', user='root', passwd='', db='database_name')
cur = conn.cursor()
cur.execute('select foo, bar from baz')
for r in cur.fetchall():
   print(r[0], r[1])

asyncio

You can use asyncio to write the following.

Use connect

import asyncio
import cymysql

async def conn_example():
    conn = await cymysql.aio.connect(
        host="127.0.0.1",
        user="root",
        passwd="",
        db="database_name",
    )
    cur = conn.cursor()
    await cur.execute("SELECT 42")
    print(await cur.fetchall())
asyncio.run(conn_example())

Use pool

import asyncio
import cymysql

async def pool_example(loop):
    pool = await cymysql.aio.create_pool(
        host="127.0.0.1",
        user="root",
        passwd="",
        db="database_name",
        loop=loop,
    )
    async with pool.acquire() as conn:
        async with conn.cursor() as cur:
            await cur.execute("SELECT 42")
            print(await cur.fetchall())
    pool.close()
    await pool.wait_closed()

loop = asyncio.get_event_loop()
loop.run_until_complete(pool_example(loop))
loop.close()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cymysql-1.1.1.tar.gz (50.4 kB view details)

Uploaded Source

File details

Details for the file cymysql-1.1.1.tar.gz.

File metadata

  • Download URL: cymysql-1.1.1.tar.gz
  • Upload date:
  • Size: 50.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for cymysql-1.1.1.tar.gz
Algorithm Hash digest
SHA256 c0ace2fa0df92aaed1050d18e039bbea2ed4b65faa5083f3df80e6dc07ca99e5
MD5 0896a8c6c66891bc63144b7f343193b7
BLAKE2b-256 aa1141f0df6fd5755001310b3a47aef17d051d5e9b568b1b6e7dd7ae114c7b7a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page