SeaTable Ent. + MySQL 8 Auth Error: caching_sha2_password / mysql_native_password unavailable on Railway

  • Hardware or environment you use: Railway PaaS Platform (using their 8GB RAM / 8 vCPU plan) with Railway’s managed MySQL 8+ database service.
  • SeaTable Edition: Enterprise
  • SeaTable Version (only necessary for self-hosted): Tried versions latest, 5.2.7, 5.1.9. Currently attempting with **

Error/Question

SeaTable Enterprise fails to start correctly because internal components cannot authenticate with the managed MySQL 8+ database provided by Railway.

The core problem is an authentication method incompatibility:

  1. The Railway MySQL 8+ server requires clients to use caching_sha2_password.
  2. Crucially, this managed MySQL service does not have the mysql_native_password plugin loaded or available. Attempts to switch the user fail (see error below).
  3. SeaTable’s internal components (including Seafile, dtable-web, dtable-events) appear unable to handle caching_sha2_password, failing with errors indicating the plugin cannot be loaded or is missing (see errors below).

Since changing the server-side authentication to mysql_native_password is impossible in this environment (due to Error 1524), I need to find a way for the SeaTable client components to successfully authenticate using caching_sha2_password.

My question is: How can SeaTable Enterprise be configured

  • via environment variables,
  • specific image version,
  • or other means
    to successfully connect to a MySQL 8+ database that requires caching_sha2_password and where mysql_native_password is unavailable?

Commands executed

Attempted to change the MySQL user’s authentication method via MySQL Workbench (which failed):

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '********';

Error Messages:

1. Error from MySQL Server when trying ALTER USER:
Error Code: 1524. Plugin ‘mysql_native_password’ is not loaded

2. Example errors from SeaTable’s internal logs (e.g., seafile.log, dtable-events.log):

  • From seafile.log:
Failed to connect to MySQL: Plugin caching_sha2_password could not be loaded: /usr/lib/mariadb/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

  • Example from Python/SQLAlchemy components (like dtable-events.log):`
(MySQLdb.OperationalError) (2059, "Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib/mariadb/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory")
(Background on this error at: https://sqlalche.me/e/20/e3q8)

.

.
Thanks for your help!

I hope someone has had a similar experience and can contribute something.
Thank you very much in advance for your attention to this message.

Dear Carlos,

thanks for sharing your findings with railway. Currently we don’t have time to look at Railway in more details due to the upcoming release of v5.3 which requires our full attention.

I don’t want to promise that I will look into Railway in the near future, but for now I would recommend, that you just book a random VPS and follow our admin manual. You will be rewarded with an up-and-running SeaTable system within less than 10 minutes and a VPS will cost you less than 10$ per month.

Best regards
Christoph

I really appreciate your response and taking the time to analyze the problem.

The reason I’m using Railway is to take advantage of the plan I already have and its capabilities.

But I’ll try what you recommend, and hopefully it will work on Railway in the future.

Thank you for your kind attention. Kind regards.