Re: [Trac] Converting from sqlite to mariadb/mysql

Bruce Dubbs <[email protected]> Fri, 6 Feb 2026 12:14:57 -0600
Newsgroups gmane.comp.version-control.subversion.trac.general
Message-ID <[email protected]>
On 2/6/26 12:43 AM, Jun Omae wrote:
> On 2026/02/06 12:30, Bruce Dubbs wrote:
>> On 2/5/26 8:39 PM, Jun Omae wrote:
>>> Hi,
>>>
>>> On Fri, Feb 6, 2026 at 10:37=E2=80=AFAM Bruce Dubbs <bruce.dubbs@gmail.=
com> wrote:
>>>>
>>>> At the linuxfromscratch project we have been using Trac for a very lon=
g time.  The last time we updated Trac was in 2021 using the latest develop=
ment system at that time.  Over the years our sqlite databases have grown q=
uite large: 287M, 884M, and 642M respectively.
>>>>
>>>> We have noticed some response problems and want to update to the lates=
t Trac and convert to mariadb.
>>>>
>>>> Doing some testing on a test server we installed python3.13, Trac-1.6,=
 PyMySQL, and mariadb-11.8.5. We then copied a current trac.db to the test =
system and ran sqlite3mysql to copy the trac.db into mariadb.
>>>>
>>>> We can log into mariadb with  'mariadb -u tracuser -p trac_db' and all=
 looks good.  We do have a symlink  /usr/bin/mysql -> mariadb
>>>>
>>>> We then edited the  trac.ini file to read:
>>>>
>>>> #[sqlite]
>>>> #extensions =3D
>>>> ...
>>>> [trac]
>>>> ...
>>>> #database =3D sqlite:db/trac.db
>>>> #database =3D mysql://tracuser:password/trac_db?unix_socket=3D/run/mar=
iadb/
>>>>       mariadb.sock
>>>> database =3D mysql://tracuser:password@localhost/trac_db
>>>>
>>>> but no matter what we try after restarting apache get the error messag=
e:
>>>>
>>>> TracError: Unable to check for upgrade of trac.db.api.DatabaseManager:=
 TracError: Unsupported database type "mysql"
>>>>
>>>> What are we missing?
>>>
>>> I'd suggest to check errors in trac.log. The pymysql library is
>>> required for MySQL but it is unavailable in your environment.
>>
>> I did look at trac.log.  It just says the error message above.
>> I also said above that pymysql is installed.  I checked with:
>>
>> $ python3
>> Python 3.13.7 (main, Feb  3 2026, 16:47:05) [GCC 15.2.0] on linux
>> Type "help", "copyright", "credits" or "license" for more information.
>>   >>> import pymysql
>>
>> without error.
>>
>> I tried the following:
>>
>> trac-admin /srv/trac/lfs convert_db mysql://tracuser:password@localhost/=
trac_db
>>
>> But got the following:
>>
>> /usr/lib/python3.13/site-packages/trac/__init__.py:14: UserWarning: pkg_=
resources is
>> deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resou=
rces.html.
>> The pkg_resources package is slated for removal as early as 2025-11-30. =
Refrain from
>> using this package or pin to Setuptools<81.
>>
>>     from pkg_resources import DistributionNotFound, get_distribution
>> Error: Unable to check for upgrade of trac.db.api.DatabaseManager: Timeo=
utError:
>> Unable to get database connection within 10 seconds.
>=20
> I guess it is failing to connect to the database via TCP. Please check
> connecting to the database via TCP connection using mariadb client.
>=20
>> #database =3D mysql://tracuser:password/trac_db?unix_socket=3D/run/maria=
db/
>>      mariadb.sock
>=20
> If you want to use unix domain socket, use like the following ("@" charac=
ter is
> needed after the password):
>=20
>    mysql://tracuser:password@/trac_db?unix_socket=3D/run/mariadb/mariadb.=
sock

I had tried that earlier, but I did not have the @ after the password.  I s=
et that up=20
and restarted apache, but still got two errors in the log (slightly formatt=
ed for=20
spacing):

2026-02-06 11:44:29,086 Trac[env]
ERROR: Exception caught while checking for upgrade:
   TracError: Unable to check for upgrade of trac.db.api.DatabaseManager:
   TracError: Unsupported database type "mysql"

I also rechecked that mariadb/mysql is listening at port 3306 and retried w=
ith
   database =3D mysql://tracuser:password@localhost/trac_db
and got the same answer.

To me it appears that Trac is not even trying to connect to the database.  =
It does=20
work if I revert to sqlite.

What can I try next?

--=20
You received this message because you are subscribed to the Google Groups "=
Trac Users" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to trac-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
To view this discussion visit https://groups.google.com/d/msgid/trac-users/=
b218cdce-9e71-414f-bfc4-56e1a2119d82%40gmail.com.