Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.6.11
Description
In the official MariaDB container image, the old_mode variable - when set at the command line - behaves inconsistently with a locally-installed version of MariaDB 10.6.11 on the same machine.
In addition, the command-line argument handling is inconsistent for string-valued flags when setting them to the empty string.
Environment:
- Docker client and server: Docker Engine Community, 20.10.21
- Host: Rocky Linux 8.7 on x64
- MariaDB version: 10.6.11, installed via RPM or run inside a Docker container.
docker run --rm -e=MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 mariadb:10.6 --old-mode=""
2022-11-29 11:05:05+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.11+maria~ubu2004 started.
|
2022-11-29 11:05:05+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
|
2022-11-29 11:05:05+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.11+maria~ubu2004 started.
|
2022-11-29 11:05:05+00:00 [Note] [Entrypoint]: Initializing database files
|
ERROR: 1071 Specified key was too long; max key length is 2300 bytes
|
2022-11-29 11:05:05 0 [ERROR] Aborting
|
|
Installation of system tables failed! Examine the logs in
|
/var/lib/mysql/ for more information.
|
|
The problem could be conflicting information in an external
|
my.cnf files. You can ignore these by doing:
|
|
shell> /usr/bin/mariadb-install-db --defaults-file=~/.my.cnf
|
|
You can also try to start the mysqld daemon with:
|
|
shell> /usr/sbin/mariadbd --skip-grant-tables --general-log &
|
|
and use the command line tool /usr/bin/mariadb
|
to connect to the mysql database and look at the grant tables:
|
|
shell> /usr/bin/mysql -u root mysql
|
mysql> show tables;
|
|
Try 'mysqld --help' if you have problems with paths. Using
|
--general-log gives you a log in /var/lib/mysql/ that may be helpful.
|
|
The latest information about mysql_install_db is available at
|
https://mariadb.com/kb/en/installing-system-tables-mysql_install_db
|
You can find the latest source at https://downloads.mariadb.org and
|
the maria-discuss email list at https://launchpad.net/~maria-discuss
|
|
Please check all of the above before submitting a bug report
|
at https://mariadb.org/jira
|
docker run --rm -e=MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 mariadb:10.6 --old-mode ""
2022-11-29 11:06:50+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.11+maria~ubu2004 started.
|
2022-11-29 11:06:50+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
|
2022-11-29 11:06:50+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.11+maria~ubu2004 started.
|
2022-11-29 11:06:50+00:00 [Note] [Entrypoint]: Initializing database files
|
2022-11-29 11:06:50 0 [ERROR] /usr/sbin/mariadbd: Error while setting value '--default-time-zone=SYSTEM' to 'old_mode'
|
|
Installation of system tables failed! Examine the logs in
|
/var/lib/mysql/ for more information.
|
[...]
|
Despite the message given, no logs are left in /var/lib/mysql/ inside the container.
The behaviour changes when the /var/lib/mysql directory is set as a mount inside the container. The first run fails with the "2300 bytes" error, while the second run with the same volume mounted succeeds. (e.g. docker run --mount=type=volume,source=mariadb-test,destination=/var/lib/mysql --rm -e=MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 mariadb:10.6 --old-mode="")
Attachments
Issue Links
- relates to
-
MDEV-28915 mysql_upgrade fails due to old_mode="", with "Cannot load from mysql.proc. The table is probably corrupted"
- Closed