= MySQL and the MySQLdb Python bindings for MySQL = ''work in progress, only the most critical information is there for now'' Starting with [milestone:0.10] Trac can use MySQL for its DatabaseBackend. Well, sort of. Better is to use [milestone:0.10.3], and only starting with [milestone:0.10.4] will MySQL be fully supported (at least that's the plan). == Requirements == === MySQL === In order to avoid several issues related to the use of unicode characters throughout Trac, we '''''strongly''''' advise MySQL users to only use databases having the ''`utf8`'' character set and the ''`utf8_general_ci`'' collation type. Such databases can be created with the MySQL monitor, like that: {{{ CREATE DATABASE trac DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; }}} See also #3884. It has also been [comment:ticket:3659:5 recommended] to use InnoDB instead of MyISAM tables, though it's not completely clear at this point if this really helps. === MySQLdb === The recommended version for now is MySQL-python 1.2.1_p2. Other versions (MySQL-python 1.2.0-3.2.2, MySQL-python 1.2.2b2) were reported to have issues (see #3645). On the other hand, MySQL-python-1.2.2b2 was [googlegroups:trac-users:e291b3ecb4a990a1 reported] to solve an `AttributeError: 'array.array' object has no attribute 'startswith'` error seen when viewing a changeset... == Known Issues == === Still Opened === [[TicketQuery(keywords=~mysql&status=!closed&group=milestone)]] === Typical Problems === [[TicketQuery(keywords=~mysql&resolution=worksforme&group=milestone)]] (corresponding [query:keywords=~mysql&status=!closed&group=milestone custom query])