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")

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

            seang Sean Gebbett created issue -
            seang Sean Gebbett made changes -
            Field Original Value New Value
            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=""}})
            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=""}})
            seang Sean Gebbett made changes -
            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=""}})
            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=""}}

            {noformat}
            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
            {noformat}

            {{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=""}})
            seang Sean Gebbett made changes -
            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=""}}

            {noformat}
            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
            {noformat}

            {{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=""}})
            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=""}}

            {noformat}
            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
            {noformat}

            {{docker run --rm -e=MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 mariadb:10.6 --old-mode ""}}

            {noformat}
            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.
            [...]
            {noformat}

            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=""}})
            danblack Daniel Black made changes -
            Labels not-10.3 not-10.4 not-10.5
            danblack Daniel Black made changes -
            Component/s Scripts & Clients [ 11002 ]
            danblack Daniel Black made changes -
            Priority Minor [ 4 ] Major [ 3 ]
            elenst Elena Stepanova made changes -
            Fix Version/s 10.6 [ 24028 ]
            danblack Daniel Black made changes -
            danblack Daniel Black made changes -
            Assignee Daniel Black [ danblack ]
            danblack Daniel Black made changes -
            Component/s Docker [ 16900 ]
            danblack Daniel Black made changes -
            Summary MariaDB container image has inconsistent old_mode behaviour ("max key length is 2300 bytes") mariadb-install-db fails to install under --old-mode="" causing ("max key length is 2300 bytes")

            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.