Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pymysql/pymysql
MySQL client library for Python
https://github.com/pymysql/pymysql
mysql python
Last synced: 6 days ago
JSON representation
MySQL client library for Python
- Host: GitHub
- URL: https://github.com/pymysql/pymysql
- Owner: PyMySQL
- License: mit
- Created: 2011-07-27T17:38:47.000Z (over 13 years ago)
- Default Branch: main
- Last Pushed: 2024-12-02T09:37:43.000Z (20 days ago)
- Last Synced: 2024-12-13T16:23:54.760Z (8 days ago)
- Topics: mysql, python
- Language: Python
- Homepage: https://pymysql.readthedocs.io/
- Size: 1.34 MB
- Stars: 7,685
- Watchers: 228
- Forks: 1,424
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
[![Documentation Status](https://readthedocs.org/projects/pymysql/badge/?version=latest)](https://pymysql.readthedocs.io/)
[![codecov](https://codecov.io/gh/PyMySQL/PyMySQL/branch/main/graph/badge.svg?token=ppEuaNXBW4)](https://codecov.io/gh/PyMySQL/PyMySQL)# PyMySQL
This package contains a pure-Python MySQL and MariaDB client library, based on [PEP
249](https://www.python.org/dev/peps/pep-0249/).## Requirements
- Python -- one of the following:
- [CPython](https://www.python.org/) : 3.7 and newer
- [PyPy](https://pypy.org/) : Latest 3.x version
- MySQL Server -- one of the following:
- [MySQL](https://www.mysql.com/) \>= 5.7
- [MariaDB](https://mariadb.org/) \>= 10.4## Installation
Package is uploaded on [PyPI](https://pypi.org/project/PyMySQL).
You can install it with pip:
$ python3 -m pip install PyMySQL
To use "sha256_password" or "caching_sha2_password" for authenticate,
you need to install additional dependency:$ python3 -m pip install PyMySQL[rsa]
To use MariaDB's "ed25519" authentication method, you need to install
additional dependency:$ python3 -m pip install PyMySQL[ed25519]
## Documentation
Documentation is available online:
For support, please refer to the
[StackOverflow](https://stackoverflow.com/questions/tagged/pymysql).## Example
The following examples make use of a simple table
``` sql
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(255) COLLATE utf8_bin NOT NULL,
`password` varchar(255) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
AUTO_INCREMENT=1 ;
`````` python
import pymysql.cursors# Connect to the database
connection = pymysql.connect(host='localhost',
user='user',
password='passwd',
database='db',
cursorclass=pymysql.cursors.DictCursor)with connection:
with connection.cursor() as cursor:
# Create a new record
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
cursor.execute(sql, ('[email protected]', 'very-secret'))# connection is not autocommit by default. So you must commit to save
# your changes.
connection.commit()with connection.cursor() as cursor:
# Read a single record
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
cursor.execute(sql, ('[email protected]',))
result = cursor.fetchone()
print(result)
```This example will print:
``` python
{'password': 'very-secret', 'id': 1}
```## Resources
- DB-API 2.0:
- MySQL Reference Manuals:
- MySQL client/server protocol:
- "Connector" channel in MySQL Community Slack:
- PyMySQL mailing list:
## License
PyMySQL is released under the MIT License. See LICENSE for more
information.