4.4.3 mysql_install_db — Initialize MySQL Data Directory

mysql_install_db initializes the MySQL data directory and creates the system tables that it contains, if they do not exist. mysql_install_db is a shell script and is available only on Unix platforms. (As of MySQL 5.6, mysql_install_db is a Perl script and can be used on any system with Perl installed.)

To invoke mysql_install_db, use the following syntax:

shell> mysql_install_db [options]

Because the MySQL server, mysqld, must 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 specify 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
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).

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 used by MySQL programs, see Section 4.2.6, “Using Option Files”.

Table 4.2 mysql_install_db Options

FormatDescription
--basedir=dir_namePath to base directory
--builddir=dir_namePath to build directory (for out-of-source builds)
--cross-bootstrapFor internal use
--datadir=dir_namePath to data directory
--defaults-extra-file=file_nameRead option file in addition to usual option files
--defaults-file=file_nameRead only named option file
--forceRun even if DNS does not work
--helpDisplay help message and exit
--ldata=dir_nameSynonym for --datadir
--no-defaultsRead no option files
--rpmFor internal use
--skip-name-resolveUse IP addresses rather than host names in grant tables
--srcdir=dir_nameFor internal use
--user=user_nameSystem login user under which to execute mysqld
--verboseVerbose mode
--windowsFor internal use