115 lines
5.7 KiB
Markdown
115 lines
5.7 KiB
Markdown
[npm-image]: https://img.shields.io/npm/v/mysql2.svg
|
|
[npm-url]: https://npmjs.com/package/mysql2
|
|
[node-version-image]: https://img.shields.io/node/v/mysql2.svg
|
|
[node-version-url]: https://nodejs.org/en/download
|
|
[downloads-image]: https://img.shields.io/npm/dm/mysql2.svg
|
|
[downloads-url]: https://npmjs.com/package/mysql2
|
|
[license-url]: https://github.com/sidorares/node-mysql2/blob/master/License
|
|
[license-image]: https://img.shields.io/npm/l/mysql2.svg?maxAge=2592000
|
|
[node-mysql]: https://github.com/mysqljs/mysql
|
|
[mysqljs]: https://github.com/mysqljs
|
|
[mysql-native]: https://github.com/sidorares/nodejs-mysql-native
|
|
[sidorares]: https://github.com/sidorares
|
|
[TooTallNate]: https://gist.github.com/TooTallNate
|
|
[starttls.js]: https://gist.github.com/TooTallNate/848444
|
|
[node-mariasql]: https://github.com/mscdex/node-mariasql
|
|
[contributors]: https://github.com/sidorares/node-mysql2/graphs/contributors
|
|
[contributing]: https://github.com/sidorares/node-mysql2/blob/master/Contributing.md
|
|
[docs-base]: https://sidorares.github.io/node-mysql2/docs
|
|
[docs-base-zh-CN]: https://sidorares.github.io/node-mysql2/zh-CN/docs
|
|
[docs-base-pt-BR]: https://sidorares.github.io/node-mysql2/pt-BR/docs
|
|
[docs-prepared-statements]: https://sidorares.github.io/node-mysql2/docs/documentation/prepared-statements
|
|
[docs-mysql-server]: https://sidorares.github.io/node-mysql2/docs/documentation/mysql-server
|
|
[docs-promise-wrapper]: https://sidorares.github.io/node-mysql2/docs/documentation/promise-wrapper
|
|
[docs-authentication-switch]: https://sidorares.github.io/node-mysql2/docs/documentation/authentication-switch
|
|
[docs-streams]: https://sidorares.github.io/node-mysql2/docs/documentation/extras
|
|
[docs-typescript-docs]: https://sidorares.github.io/node-mysql2/docs/documentation/typescript-examples
|
|
[docs-qs-pooling]: https://sidorares.github.io/node-mysql2/docs#using-connection-pools
|
|
[docs-qs-first-query]: https://sidorares.github.io/node-mysql2/docs#first-query
|
|
[docs-qs-using-prepared-statements]: https://sidorares.github.io/node-mysql2/docs#using-prepared-statements
|
|
[docs-examples]: https://sidorares.github.io/node-mysql2/docs/examples
|
|
[docs-faq]: https://sidorares.github.io/node-mysql2/docs/faq
|
|
[docs-documentation]: https://sidorares.github.io/node-mysql2/docs/documentation
|
|
[docs-contributing]: https://sidorares.github.io/node-mysql2/docs/contributing/website
|
|
[coverage]: https://img.shields.io/codecov/c/github/sidorares/node-mysql2
|
|
[coverage-url]: https://app.codecov.io/github/sidorares/node-mysql2
|
|
[ci-url]: https://github.com/sidorares/node-mysql2/actions/workflows/ci-coverage.yml?query=branch%3Amaster
|
|
[ci-image]: https://img.shields.io/github/actions/workflow/status/sidorares/node-mysql2/ci-coverage.yml?event=push&style=flat&label=CI&branch=master
|
|
|
|
# MySQL2
|
|
|
|
[![NPM Version][npm-image]][npm-url]
|
|
[![NPM Downloads][downloads-image]][downloads-url]
|
|
[![Node.js Version][node-version-image]][node-version-url]
|
|
[![GitHub Workflow Status (with event)][ci-image]][ci-url]
|
|
[![Codecov][coverage]][coverage-url]
|
|
[![License][license-image]][license-url]
|
|
|
|
[English][docs-base] | [简体中文][docs-base-zh-CN] | [Português (BR)][docs-base-pt-BR]
|
|
|
|
> MySQL client for Node.js with focus on performance. Supports prepared statements, non-utf8 encodings, binary log protocol, compression, ssl [much more][docs-documentation].
|
|
|
|
**Table of Contents**
|
|
|
|
- [History and Why MySQL2](#history-and-why-mysql2)
|
|
- [Installation](#installation)
|
|
- [Documentation](#documentation)
|
|
- [Acknowledgements](#acknowledgements)
|
|
- [Contributing](#contributing)
|
|
|
|
## History and Why MySQL2
|
|
|
|
MySQL2 project is a continuation of [MySQL-Native][mysql-native]. Protocol parser code was rewritten from scratch and api changed to match popular [Node MySQL][node-mysql]. MySQL2 team is working together with [Node MySQL][node-mysql] team to factor out shared code and move it under [mysqljs][mysqljs] organization.
|
|
|
|
MySQL2 is mostly API compatible with [Node MySQL][node-mysql] and supports majority of features. MySQL2 also offers these additional features:
|
|
|
|
- Faster / Better Performance
|
|
- [Prepared Statements][docs-prepared-statements]
|
|
- MySQL Binary Log Protocol
|
|
- [MySQL Server][docs-mysql-server]
|
|
- Extended support for Encoding and Collation
|
|
- [Promise Wrapper][docs-promise-wrapper]
|
|
- Compression
|
|
- SSL and [Authentication Switch][docs-authentication-switch]
|
|
- [Custom Streams][docs-streams]
|
|
- [Pooling][docs-qs-pooling]
|
|
|
|
## Installation
|
|
|
|
MySQL2 is free from native bindings and can be installed on Linux, Mac OS or Windows without any issues.
|
|
|
|
```bash
|
|
npm install --save mysql2
|
|
```
|
|
|
|
If you are using TypeScript, you will need to install `@types/node`.
|
|
|
|
```bash
|
|
npm install --save-dev @types/node
|
|
```
|
|
|
|
> For TypeScript documentation and examples, see [here][docs-typescript-docs].
|
|
|
|
## Documentation
|
|
|
|
- [Quickstart][docs-base]
|
|
- [First Query][docs-qs-first-query], [Using Prepared Statements][docs-qs-using-prepared-statements], [Using Connection Pools][docs-qs-pooling] and more.
|
|
- [Documentation][docs-documentation]
|
|
- [Examples][docs-examples]
|
|
- [FAQ][docs-faq]
|
|
|
|
## Acknowledgements
|
|
|
|
- Internal protocol is written by [@sidorares][sidorares] [MySQL-Native][mysql-native].
|
|
- Constants, SQL parameters interpolation, Pooling, `ConnectionConfig` class taken from [Node MySQL][node-mysql].
|
|
- SSL upgrade code based on [@TooTallNate][TooTallNate] [code][starttls.js].
|
|
- Secure connection / compressed connection api flags compatible to [MariaSQL][node-mariasql] client.
|
|
- [Contributors][contributors].
|
|
|
|
## Contributing
|
|
|
|
Want to improve something in **MySQL2**?
|
|
Please check [Contributing.md][contributing] for detailed instruction on how to get started.
|
|
|
|
To contribute in **MySQL2 Documentation**, please visit the [Website Contributing Guidelines][docs-contributing] for detailed instruction on how to get started.
|