Edgewall Software

Version 6 (modified by Christian Boos, 17 years ago) ( diff )

note about using InnoDB vs. MyISAM tables

MySQL and the MySQLdb Python bindings for MySQL

work in progress, only the most critical information is there for now

Starting with 0.10 Trac can use MySQL for its DatabaseBackend.

Well, sort of.

Better is to use 0.10.3, and only starting with 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 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 reported to solve an AttributeError: 'array.array' object has no attribute 'startswith' error seen when viewing a changeset…

Known Issues

next-dev-1.7.x milestone tickets:

#13080
Add [trac] mysql_storage_engine option instead of editting my.cnf

next-major-releases milestone tickets:

#6986
MySQL schema changes for performance
#11206
Reduce join in query process
#12390
Attachment table primary key not unique when migrating from SQLite to MySQL

next-stable-1.6.x milestone tickets:

#12097
Add a script to contrib for converting MySQL storage engine
#12363
Support ucs2/utf16/utf32 charset and utf16_bin/utf32_bin collation in MySQL

unscheduled milestone tickets:

#8567
BLOB column can't be used in PRIMARY KEY and maximum ROW size is 8052 on NDB engine
#12143
mysql + InnoDB + auth_cookie == Bad.

(corresponding custom query)

Note: See TracWiki for help on using the wiki.