========
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"
}