Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-30126

mariadb-install-db fails to install under --old-mode="" causing ("max key length is 2300 bytes")

    XMLWordPrintable

Details

    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

          Activity

            People

              Unassigned Unassigned
              seang Sean Gebbett
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.