Spec-Zone .ru
спецификации, руководства, описания, API
|
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.
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".
The path to the MySQL installation directory.
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.
Cause mysql_install_db to run even if DNS does not work. Grant table entries that normally use host names will use IP addresses.
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.
For internal use. This option is used during the MySQL installation process for install operations performed using RPM packages.
Use IP addresses rather than host names when creating grant table entries. This option can be useful if your DNS does not work.
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.
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 mode. Print more information about what the program does.
For internal use. This option is used for creating Windows distributions.