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 AM Bruce Dubbs <[email protected]> wrote:
At the linuxfromscratch project we have been using Trac for a very long time.
The last time we updated Trac was in 2021 using the latest development system
at that time. Over the years our sqlite databases have grown quite large:
287M, 884M, and 642M respectively.
We have noticed some response problems and want to update to the latest 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 =
...
[trac]
...
#database = sqlite:db/trac.db
#database = mysql://tracuser:password/trac_db?unix_socket=/run/mariadb/
mariadb.sock
database = mysql://tracuser:password@localhost/trac_db
but no matter what we try after restarting apache get the error message:
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_resources.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: TimeoutError:
Unable to get database connection within 10 seconds.
I guess it is failing to connect to the database via TCP. Please check
connecting to the database via TCP connection using mariadb client.
#database = mysql://tracuser:password/trac_db?unix_socket=/run/mariadb/
mariadb.sock
If you want to use unix domain socket, use like the following ("@" character is
needed after the password):
mysql://tracuser:password@/trac_db?unix_socket=/run/mariadb/mariadb.sock
I had tried that earlier, but I did not have the @ after the password. I set that up
and restarted apache, but still got two errors in the log (slightly formatted for
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 with
database = 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
work if I revert to sqlite.
What can I try next?
--
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 email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/trac-users/b218cdce-9e71-414f-bfc4-56e1a2119d82%40gmail.com.