cymysql


Namecymysql JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/nakagami/CyMySQL/
SummaryPython MySQL Driver using Cython
upload_time2023-09-21 21:55:00
maintainerHajime Nakagami
docs_urlNone
authorYutaka Matsubara
requires_python
licenseMIT
keywords mysql
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ========
CyMySQL
========

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 accerarates by Cython, and support not only python 2 but also python 3.
It still can work without Cython as a pure python driver.

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

Requirements
-------------

- Python 2.7, 3.5+
- MySQL 5.5 or higher
    
Installation
--------------

Install cython (optional)
++++++++++++++++++++++++++++++

::

   # pip install cython

Install cymysql
++++++++++++++++++++++++++++++

::

   # pip install cymysql

MySQL 8.0 and insecure connection
+++++++++++++++++++++++++++++++++++

If you use caching_sha2_password authentication plugin (MySQL 8.0 default)
and connect with 'not ssl and not unix_socket' you shoud install pycryptodome

::

   # pip install pycryptodome


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
++++++++++++++++++++++++++++++++++++++

In Python3, you can use asyncio to write the following.

This API is experimental.
If there are any mistakes, please correct them in the pull request and send.

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()



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/nakagami/CyMySQL/",
    "name": "cymysql",
    "maintainer": "Hajime Nakagami",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "nakagami@gmail.com",
    "keywords": "MySQL",
    "author": "Yutaka Matsubara",
    "author_email": "yutaka.matsubara@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/7e/a8/0abfc008e2a89f7d26f7ba3358408f13df785e3aaa65ea3de5ae2a8c4b68/cymysql-1.0.1.tar.gz",
    "platform": null,
    "description": "========\nCyMySQL\n========\n\nWhat's CyMySQL\n--------------\n\nThis package contains a python MySQL client library.\n\nIt is a fork project from PyMySQL https://pymysql.readthedocs.io/en/latest/.\n\nCyMySQL accerarates by Cython, and support not only python 2 but also python 3.\nIt still can work without Cython as a pure python driver.\n\nDocumentation on the MySQL client/server protocol can be found here:\nhttp://dev.mysql.com/doc/internals/en/client-server-protocol.html\n\nRequirements\n-------------\n\n- Python 2.7, 3.5+\n- MySQL 5.5 or higher\n    \nInstallation\n--------------\n\nInstall cython (optional)\n++++++++++++++++++++++++++++++\n\n::\n\n   # pip install cython\n\nInstall cymysql\n++++++++++++++++++++++++++++++\n\n::\n\n   # pip install cymysql\n\nMySQL 8.0 and insecure connection\n+++++++++++++++++++++++++++++++++++\n\nIf you use caching_sha2_password authentication plugin (MySQL 8.0 default)\nand connect with 'not ssl and not unix_socket' you shoud install pycryptodome\n\n::\n\n   # pip install pycryptodome\n\n\nExample\n---------------\n\nPython Database API Specification v2.0\n+++++++++++++++++++++++++++++++++++++++++\n\nhttps://peps.python.org/pep-0249/\n\n::\n\n   import cymysql\n   conn = cymysql.connect(host='127.0.0.1', user='root', passwd='', db='database_name')\n   cur = conn.cursor()\n   cur.execute('select foo, bar from baz')\n   for r in cur.fetchall():\n      print(r[0], r[1])\n\nasyncio\n++++++++++++++++++++++++++++++++++++++\n\nIn Python3, you can use asyncio to write the following.\n\nThis API is experimental.\nIf there are any mistakes, please correct them in the pull request and send.\n\nUse connect\n::\n\n   import asyncio\n   import cymysql\n\n   async def conn_example():\n       conn = await cymysql.aio.connect(\n           host=\"127.0.0.1\",\n           user=\"root\",\n           passwd=\"\",\n           db=\"database_name\",\n       )\n       cur = conn.cursor()\n       await cur.execute(\"SELECT 42\")\n       print(await cur.fetchall())\n   asyncio.run(conn_example())\n\nUse pool\n::\n\n   import asyncio\n   import cymysql\n\n   async def pool_example(loop):\n       pool = await cymysql.aio.create_pool(\n           host=\"127.0.0.1\",\n           user=\"root\",\n           passwd=\"\",\n           db=\"database_name\",\n           loop=loop,\n       )\n       async with pool.acquire() as conn:\n           async with conn.cursor() as cur:\n               await cur.execute(\"SELECT 42\")\n               print(await cur.fetchall())\n       pool.close()\n       await pool.wait_closed()\n\n   loop = asyncio.get_event_loop()\n   loop.run_until_complete(pool_example(loop))\n   loop.close()\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python MySQL Driver using Cython",
    "version": "1.0.1",
    "project_urls": {
        "Homepage": "https://github.com/nakagami/CyMySQL/"
    },
    "split_keywords": [
        "mysql"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7ea80abfc008e2a89f7d26f7ba3358408f13df785e3aaa65ea3de5ae2a8c4b68",
                "md5": "4503edde1692fe247984f006f148e7cd",
                "sha256": "413fbc3e80b8e4cae6b9188a233b2f11ce27d0789dca521eecf24e8c21e57450"
            },
            "downloads": -1,
            "filename": "cymysql-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "4503edde1692fe247984f006f148e7cd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 49559,
            "upload_time": "2023-09-21T21:55:00",
            "upload_time_iso_8601": "2023-09-21T21:55:00.019600Z",
            "url": "https://files.pythonhosted.org/packages/7e/a8/0abfc008e2a89f7d26f7ba3358408f13df785e3aaa65ea3de5ae2a8c4b68/cymysql-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-21 21:55:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nakagami",
    "github_project": "CyMySQL",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cymysql"
}
        
Elapsed time: 0.11468s