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

Table 4.2 mysql_install_db Options

FormatOption FileDescription
--basedir=pathbasedirThe MySQL base directory
--builddir=pathbuilddirThe build directory (for out-of-source builds)
--cross-bootstrapcross-bootstrapFor internal use
--datadir=pathdatadirThe MySQL data directory
--defaults-extra-file=file_name Read option file in addition to usual option files
--defaults-file=file_name Read only named option file
--forceforceRun even if DNS does not work
--helphelpDisplay help message and exit
--ldata=pathldataSynonym for --datadir
--no-defaults Read no option files
--rpmrpmFor internal use
--skip-name-resolveskip-name-resolveUse IP addresses rather than host names in grant tables
--srcdir=pathsrcdirFor internal use
--user=user_nameuserSystem login user under which to execute
--verboseverboseVerbose mode
--windowswindowsFor internal use