MySQL++

Artifact [89d9e8cc55]
Login

Artifact 89d9e8cc559c897e38f29fcf84e3eec1bc340e254419f7ba166a0acf72ae4578:

Wiki page [MySQL++] by tangent 2018-07-27 06:20:32.
D 2018-07-27T06:20:32.949
L MySQL++
N text/x-markdown
P 7c23b8f0742373f21f9cf39b71bd29e8103a5421f00367ce73cfd43e1ec090d5
U tangent
W 5877
<img src="https://tangentsoft.com/mysqlpp/bitmaps/logo-small.jpg" alt="MySQL++ rocks" width="300" height="142" style="float:right; margin-left:20px" />

MySQL++ is a C++ wrapper for [MySQL](http://mysql.com/)’s C API. It is built around the same principles as the Standard C++ Library, to make dealing with the database as easy as dealing with STL containers. In addition, MySQL++ provides facilities that let you avoid the most repetitive sorts of SQL within your own code, providing native C++ interfaces for these common tasks.

If you have questions about this project and can’t find an answer in the [documentation](/wiki?name=Documentation) or the [mailing list archives](http://lists.mysql.com/plusplus/), you should [ask it on the list](http://lists.mysql.com/plusplus/). Everyone active in MySQL++’s development monitors that mailing list, and the library’s primary maintainer responds to almost every question posted there. By posting to the mailing list, your question and any answers are archived
for future developers to find, and you reach a wider audience than is possible with personal email.


## <a name="stable"></a>Latest Stable Version

Before upgrading an existing version of MySQL++, please scan through the [change log](/doc/trunk/ChangeLog.md) first. If you’re coming from a much older version, better read through the “[Incompatible Library Changes](doc/html/userman/breakages.html)” chapter in the [user manual](doc/html/userman/) instead. 


### <a name="source"></a>Source Code

[mysql++-3.2.4.tar.gz](releases/mysql++-3.2.4.tar.gz) (4.4 MiB, 2018.07.26) — Library source code. If you aren’t sure which file to download, download this.

[mysql++-3.2.4-1.el7.src.rpm](releases/mysql++-3.2.4-1.el7.src.rpm) (3.3 MiB, 2018.07.26) — Source RPM, for those that need to build their own binary RPMs:

    $ rpmbuild --rebuild /wherever/it/is/mysql++-3.2.4-1.el7.src.rpm

The resulting `mysql++`, `mysql++-devel` and `mysql++-manuals` RPMs should then be found in `~/rpmbuild/RPMS/x86_64` if you did it on a 64-bit x86 based Linux box. If that didn't work, but building from the normal source tarball *does* work on your system, try rebuilding the RPMs from the SRPM as root. That was the smoothest path on old RPM-based systems.

If you want the current bleeding-edge version of MySQL++, you can pull the tip of trunk directly from our Fossil repository as [mysql++-trunk.tar.gz](/tarball/mysql%2B%2B-trunk.tar.gz?uuid=trunk).

Alternately, you may [clone our Fossil repository](/doc/trunk/HACKERS.md), which will get you the complete project repository with [abridged history](/wiki?name=Abridged+Version+History) going back to the project's founding, the wiki contents, our ticket tracker contents, and more.


### <a name="binary"></a>Binary Packages

MySQL++ has been picked up by many package distros. It’s been spotted in the [Debian](http://packages.debian.org/search?searchon=sourcenames&keywords=mysql%2B%2B), [Fedora](https://admin.fedoraproject.org/pkgdb/package/rpms/mysql++/),
[FreeBSD](http://www.freshports.org/databases/mysql++3/), [Gentoo](http://packages.gentoo.org/package/dev-db/mysql++?arches=all), [Homebrew](https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql++.rb),
[RHEL (EPEL)](https://fedoraproject.org/wiki/EPEL), and [Ubuntu](https://launchpad.net/ubuntu/+source/mysql%2B%2B) package
systems. Since these packages are properly integrated into their host distributions, we no longer offer competing binary packages here.

If you want something different in your binary package than you get in the standard package distro for your OS, you should build it from [source](#source) on the target OS, or else you are likely to have [problems](#segfaults).


## <a name="oldver"></a>Old Versions

If you need a particular older version of MySQL++, you can either grab the raw source code for it from the [Fossil tag list page](/taglist) or you can [browse](/releases) the old version archive.

Those still needing MySQL++ 2.x might be interested in the [`v2.3.2-modern`](https://tangentsoft.com/mysqlpp/timeline?r=v2.3.2-modern) branch, which makes minimal changes to version 2.3.2 — the last release in the 2.x line — to allow it to build on modern systems. Essentially, it contains build fixes analogous to those we've done in the 3.x line without backporting any actual features or behavior changes from 3.x. This branch is unlikely to ever be released, but it is intended to be "stable" at all times.


## <a name="docs"></a>Documentation

The user and reference manuals are shipped in the source code tarball above. They are also [available online](/doc/).


## <a name="faq"></a>Frequently-Asked Questions

The [FAQ list](/wiki?name=FAQ) answers many commonly-asked questions about MySQL++.


## <a name="contrib"></a>Contributing to the Effort

The easiest thing to do if you want to help out with the MySQL++ development effort is to participate on the [mailing list](http://lists.mysql.com/plusplus/). We could use help answering questions, and it’s frequently helpful to have different voices contributing to discussions about the library’s future.

If you want to participate in the coding effort, the MySQL++ development project is hosted right here, by [Fossil](http://fossil-scm.org/), a distributed version control similar to Git, but much easier to use. See [the Hackers file](/file/HACKERS.md) for instructions on working with Fossil and the MySQL++ source code.

For a great source of projects to tackle, see [the Wishlist file](/file/Wishlist).

If you just want to keep up on the in-progress developments, see [the project timeline](/timeline), which is also available in [RSS form](/timeline.rss) for those who want MySQL++ changes to appear in their feed reader.



<div style="height:400px"/>
Z 1dd9d6ed18f3ba3f78d1238343f62201