'\" t
.\"     Title: \fBmysql_install_db\fR
.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\"      Date: 01/04/2021
.\"    Manual: MySQL Database System
.\"    Source: MySQL 5.6
.\"  Language: English
.\"
.TH "\FBMYSQL_INSTALL_DB\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
mysql_install_db \- initialize MySQL data directory
.SH "SYNOPSIS"
.HP \w'\fBmysql_install_db\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u
\fBmysql_install_db [\fR\fB\fIoptions\fR\fR\fB]\fR
.SH "DESCRIPTION"
.PP
\fBmysql_install_db\fR
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,
\fBmysql_install_db\fR
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\&.
.PP
As of MySQL 5\&.6\&.8, on Unix platforms,
\fBmysql_install_db\fR
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
\fBmysqld_safe\fR, the server uses
my\&.cnf
file by default\&. If
my\&.cnf
already exists,
\fBmysql_install_db\fR
assumes it to be in use and writes a new file named
my\-new\&.cnf
instead\&.
.PP
With one exception, the settings in the default option file are commented and have no effect\&. The exception is that the file sets the
sql_mode
system variable to
NO_ENGINE_SUBSTITUTION,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.10, \(lqServer SQL Modes\(rq\&.
.PP
To invoke
\fBmysql_install_db\fR, use the following syntax:
.sp
.if n \{\
.RS 4
.\}
.nf
shell> \fBmysql_install_db [\fR\fB\fIoptions\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.PP
Because the MySQL server,
\fBmysqld\fR, must access the data directory when it runs later, you should either run
\fBmysql_install_db\fR
from the same system account that is used for running
\fBmysqld\fR, or run it as
root
and specify the
\fB\-\-user\fR
option to indicate the user name that
\fBmysqld\fR
runs as\&. It might be necessary to specify other options such as
\fB\-\-basedir\fR
or
\fB\-\-datadir\fR
if
\fBmysql_install_db\fR
does not use the correct locations for the installation directory or data directory\&. For example:
.sp
.if n \{\
.RS 4
.\}
.nf
shell> \fBscripts/mysql_install_db \-\-user=mysql \e\fR
         \fB\-\-basedir=/opt/mysql/mysql \e\fR
         \fB\-\-datadir=/opt/mysql/mysql/data\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
.PP
After
\fBmysql_install_db\fR
sets up the
InnoDB
system tablespace, changes to some 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 parameters are in place in the MySQL
configuration file
before running
\fBmysql_install_db\fR\&. Also make sure to specify as necessary other parameters that affect the creation and location of
InnoDB
files, such as
innodb_data_home_dir
and
innodb_log_group_home_dir\&.
.PP
If those options are in your configuration file but that file is not in a location that MySQL reads by default, specify the file location using the
\fB\-\-defaults\-extra\-file\fR
option when you run
\fBmysql_install_db\fR\&.
.sp .5v
.RE
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
.PP
If you have set a custom
TMPDIR
environment variable when performing the installation, and the specified directory is not accessible,
\fBmysql_install_db\fR
may fail\&. If so, unset
TMPDIR
or set
TMPDIR
to point to the system temporary directory (usually
/tmp)\&.
.sp .5v
.RE
.PP
\fBmysql_install_db\fR
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
\fBmysqld\fR
can also be specified in the
[mysqld]
group\&.) Other options are passed to
\fBmysqld\fR\&. For information about option files used by MySQL programs, see
Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-help\fR
Display a help message and exit\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-basedir=\fR\fB\fIdir_name\fR\fR
The path to the MySQL installation directory\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-builddir=\fR\fB\fIdir_name\fR\fR
For use with
\fB\-\-srcdir\fR
and out\-of\-source builds\&. Set this to the location of the directory where the built files reside\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-cross\-bootstrap\fR
For internal use\&. This option is used for building system tables on one host intended for another\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-datadir=\fR\fB\fIdir_name\fR\fR
The path to the MySQL data directory\&. Beginning with MySQL 5\&.6\&.8,
\fBmysql_install_db\fR
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\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
\fIfile_name\fR
is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
.sp
For additional information about this and other option\-file options, see
Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
\fIfile_name\fR
is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
.sp
For additional information about this and other option\-file options, see
Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-force\fR
Cause
\fBmysql_install_db\fR
to run even if DNS does not work\&. Grant table entries normally created using host names use IP addresses instead\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-keep\-my\-cnf\fR
Tell
\fBmysql_install_db\fR
to preserve any existing
my\&.cnf
file and not create a new default
my\&.cnf
file\&. This option was added in MySQL 5\&.6\&.20\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-ldata=\fR\fB\fIdir_name\fR\fR
A synonym for
\fB\-\-datadir\fR\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-no\-defaults\fR
Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
\fB\-\-no\-defaults\fR
can be used to prevent them from being read\&.
.sp
For additional information about this and other option\-file options, see
Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-random\-passwords\fR
On Unix platforms, this option provides for more secure MySQL installation\&. Invoking
\fBmysql_install_db\fR
with
\fB\-\-random\-passwords\fR
causes it to perform the following actions in addition to its normal operation:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The installation process creates a random password, assigns it to the initial MySQL
root
accounts, and sets the
\(lqpassword expired\(rq
flag for those accounts\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The initial random
root
password is written to the
\&.mysql_secret
file in the directory named by the
HOME
environment variable\&. Depending on operating system, using a command such as
\fBsudo\fR
may cause the value of
HOME
to refer to the home directory of the
root
system user\&.
.sp
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\&.
.sp
\&.mysql_secret
is created with mode 600 to be accessible only to the operating system user for whom it is created\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
No anonymous\-user MySQL accounts are created\&.
.RE
.sp
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 specify 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
\fBmysql\fR
client)\&. You can also use
\fBmysqladmin\fR
or
\fBmysql_secure_installation\fR\&.
.sp
New RPM install operations (not upgrades) invoke
\fBmysql_install_db\fR
with the
\fB\-\-random\-passwords\fR
option\&. (Install operations using RPMs for Unbreakable Linux Network are unaffected because they do not use
\fBmysql_install_db\fR\&.)
.sp
As of MySQL 5\&.6\&.9, new Solaris PKG install operations (not upgrades) invoke
\fBmysql_install_db\fR
with the
\fB\-\-random\-passwords\fR
option\&.
.sp
For install operations using a binary
\&.tar\&.gz
distribution or a source distribution, you can invoke
\fBmysql_install_db\fR
with the
\fB\-\-random\-passwords\fR
option manually to make your MySQL installation more secure\&. This is recommended, particularly for sites with sensitive data\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-rpm\fR
For internal use\&. This option is used during the MySQL installation process for install operations performed using RPM packages\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-skip\-name\-resolve\fR
Use IP addresses rather than host names when creating grant table entries\&. This option can be useful if your DNS does not work\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-srcdir=\fR\fB\fIdir_name\fR\fR
For internal use\&. This option specifies the directory under which
\fBmysql_install_db\fR
looks for support files such as the error message file and the file for populating the help tables\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-user=\fR\fB\fIuser_name\fR\fR
The system (login) user name to use for running
\fBmysqld\fR\&. Files and directories created by
\fBmysqld\fR
are owned by this user\&. You must be the system
root
user to use this option\&. By default,
\fBmysqld\fR
runs using your current login name and files and directories that it creates are owned by you\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-verbose\fR
Verbose mode\&. Print more information about what the program does\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-windows\fR
For internal use\&. This option is used for creating Windows distributions\&.
.RE
.SH "COPYRIGHT"
.br
.PP
Copyright \(co 1997, 2021, Oracle and/or its affiliates.
.PP
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.
.PP
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.
.PP
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/.
.sp
.SH "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/.
.SH AUTHOR
Oracle Corporation (http://dev.mysql.com/).
