Provided by: mysql-server-core-5.6_5.6.16-1~exp1_amd64 bug

NAME

       mysql_install_db - initialize MySQL data directory

SYNOPSIS

       mysql_install_db [options]

DESCRIPTION

       mysql_install_db initializes the MySQL data directory and creates the system tables that
       it contains, if they do not exist. It also initializes the system tablespace and related
       data structures needed to manage InnoDB tables. As of MySQL 5.6.8, mysql_install_db is a
       Perl script and can be used on any system with Perl installed. Before 5.6.8, it is a shell
       script and is available only on Unix platforms.

       As of MySQL 5.6.8, on Unix platforms, mysql_install_db creates a default option file named
       my.cnf in the base installation directory. This file is created from a template included
       in the distribution package named my-default.cnf. You can find the template in or under
       the base installation directory. When started using mysqld_safe, the server uses my.cnf
       file by default. If my.cnf already exists, mysql_install_db assumes it to be in use and
       writes a new file named my-new.cnf instead.

       With one exception, the settings in the default option file are commented and have no
       effect. The exception is that the file changes the sql_mode system variable from its
       default of NO_ENGINE_SUBSTITUTION to also include STRICT_TRANS_TABLES. This setting
       produces a server configuration that results in errors rather than warnings for bad data
       in operations that modify transactional tables. See Section 5.1.7, “Server SQL Modes”.

       To invoke mysql_install_db, use the following syntax:

           shell> mysql_install_db [options]

       Because the MySQL server, mysqld, needs to access the data directory when it runs later,
       you should either run mysql_install_db from the same system account that will be used for
       running mysqld or run it as root and use the --user option to indicate the user name that
       mysqld will run as. It might be necessary to specify other options such as --basedir or
       --datadir if mysql_install_db does not use the correct locations for the installation
       directory or data directory. For example:

           shell> scripts/mysql_install_db --user=mysql \
                    --basedir=/opt/mysql/mysql \
                    --datadir=/opt/mysql/mysql/data

       mysql_install_db needs to invoke mysqld with the --bootstrap and --skip-grant-tables
       options.

           Note
           If you have set a custom TMPDIR environment variable when performing the installation,
           and the specified directory is not accessible, mysql_install_db may fail. If so, unset
           TMPDIR or set TMPDIR to point to the system temporary directory (usually /tmp).

           After mysql_install_db sets up the InnoDB system tablespace, changes to some of
           tablespace characteristics require setting up a whole new instance. This includes the
           file name of the first file in the system tablespace and the number of undo logs. If
           you do not want to use the default values, make sure that the settings for the
           innodb_data_file_path and innodb_log_file_size configuration options are in place in
           the MySQL configuration file before running mysql_install_db.

       mysql_install_db supports the following options, which can be specified on the command
       line or in the [mysql_install_db] group of an option file. (Options that are common to
       mysqld can also be specified in the [mysqld] group.) Other options are passed to mysqld.
       For information about option files, see Section 4.2.3.3, “Using Option Files”.
       mysql_install_db also supports the options for processing option files described at
       Section 4.2.3.4, “Command-Line Options that Affect Option-File Handling”.

       ·   --basedir=path

           The path to the MySQL installation directory.

       ·   --datadir=path, --ldata=path

           The path to the MySQL data directory. Beginning with MySQL 5.6.8, mysql_install_db is
           more strict about the option value. Only the last component of the path name is
           created if it does not exist; the parent directory must already exist or an error
           occurs.

       ·   --force

           Cause mysql_install_db to run even if DNS does not work. Grant table entries that
           normally use host names will use IP addresses.

       ·   --random-passwords

           On Unix platforms, this option provides for more secure MySQL installation. Invoking
           mysql_install_db with --random-passwords causes it to perform the following actions in
           addition to its normal operation:

           ·   Create a random password, assign it to the initial MySQL root accounts, and set
               the “password expired” flag for those accounts.

           ·   Write the initial password file to the .mysql_secret file in the directory named
               by the HOME environment variable. Depending on operating system, using a command
               such as sudo may cause the value of HOME to refer to the home directory of the
               root system user.

               If .mysql_secret already exists, the new password information is appended to it.
               Each password entry includes a timestamp so that in the event of multiple install
               operations it is possible to determine the password associated with each one.

               .mysql_secret is created with mode 600 to be accessible only to the system user
               for whom it is created.

           ·   Remove the anonymous-user MySQL accounts.

           As a result of these actions, it is necessary after installation to start the server,
           connect as root using the password written to the .mysql_secret file, and to assign a
           new root password. Until this is done, root cannot do anything else. This must be done
           for each root account you intend to use. To change the password, you can use the SET
           PASSWORD statement (for example, with the mysql client). You can also use mysqladmin
           or mysql_secure_installation.

           New RPM install operations (not upgrades) invoke mysql_install_db with the
           --random-passwords option. (Install operations using RPMs for Unbreakable Linux
           Network are unaffected because they do not use mysql_install_db.)

           As of MySQL 5.6.9, new Solaris PKG install operations (not upgrades) invoke
           mysql_install_db with the --random-passwords option.

           For install operations using a binary .tar.gz distribution or a source distribution,
           you can invoke mysql_install_db with the --random-passwords option manually to make
           your MySQL installation more secure. This is recommended, particularly for sites with
           sensitive data.

           This option was added in MySQL 5.6.8.

       ·   --rpm

           For internal use. This option is used during the MySQL installation process for
           install operations performed using RPM packages.

       ·   --skip-name-resolve

           Use IP addresses rather than host names when creating grant table entries. This option
           can be useful if your DNS does not work.

       ·   --srcdir=path

           For internal use. This option specifies the directory under which mysql_install_db
           looks for support files such as the error message file and the file for populating the
           help tables.

       ·   --user=user_name

           The system (login) user name to use for running mysqld. Files and directories created
           by mysqld will be owned by this user. You must be root to use this option. By default,
           mysqld runs using your current login name and files and directories that it creates
           will be owned by you.

       ·   --verbose

           Verbose mode. Print more information about what the program does.

       ·   --windows

           For internal use. This option is used for creating Windows distributions.

COPYRIGHT

       Copyright © 1997, 2014, Oracle and/or its affiliates. All rights reserved.

       This documentation is free software; you can redistribute it and/or modify it only under
       the terms of the GNU General Public License as published by the Free Software Foundation;
       version 2 of the License.

       This documentation is distributed in the hope that it will be useful, but WITHOUT ANY
       WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
       PURPOSE. See the GNU General Public License for more details.

       You should have received a copy of the GNU General Public License along with the program;
       if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
       Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/.

SEE ALSO

       For more information, please refer to the MySQL Reference Manual, which may already be
       installed locally and which is also available online at http://dev.mysql.com/doc/.

AUTHOR

       Oracle Corporation (http://dev.mysql.com/).

                                                                               MYSQL_INSTALL_DB()