(mysql.info) unix-post-installation
Info Catalog
(mysql.info) windows-post-installation
(mysql.info) post-installation
(mysql.info) default-privileges
2.9.2 Unix Post-Installation Procedures
---------------------------------------
Menu
* mysql-install-db Problems Running `mysql_install_db'
* automatic-start Starting and Stopping MySQL Automatically
* starting-server Starting and Troubleshooting the MySQL Server
After installing MySQL on Unix, you need to initialize the grant
tables, start the server, and make sure that the server works
satisfactorily. You may also wish to arrange for the server to be
started and stopped automatically when your system starts and stops.
You should also assign passwords to the accounts in the grant tables.
On Unix, the grant tables are set up by the `mysql_install_db' program.
For some installation methods, this program is run for you
automatically:
* If you install MySQL on Linux using RPM distributions, the server
RPM runs `mysql_install_db'.
* If you install MySQL on Mac OS X using a PKG distribution, the
installer runs `mysql_install_db'.
Otherwise, you'll need to run `mysql_install_db' yourself.
The following procedure describes how to initialize the grant tables
(if that has not previously been done) and then start the server. It
also suggests some commands that you can use to test whether the server
is accessible and working properly. For information about starting and
stopping the server automatically, see automatic-start.
After you complete the procedure and have the server running, you
should assign passwords to the accounts created by `mysql_install_db'.
Instructions for doing so are given in default-privileges.
In the examples shown here, the server runs under the user ID of the
`mysql' login account. This assumes that such an account exists. Either
create the account if it does not exist, or substitute the name of a
different existing login account that you plan to use for running the
server.
1. Change location into the top-level directory of your MySQL
installation, represented here by BASEDIR:
shell> cd BASEDIR
BASEDIR is likely to be something like `/usr/local/mysql' or
`/usr/local'. The following steps assume that you are located in
this directory.
2. If necessary, run the `mysql_install_db' program to set up the
initial MySQL grant tables containing the privileges that
determine how users are allowed to connect to the server. You'll
need to do this if you used a distribution type for which the
installation procedure doesn't run the program for you.
Typically, `mysql_install_db' needs to be run only the first time
you install MySQL, so you can skip this step if you are upgrading
an existing installation, However, `mysql_install_db' does not
overwrite any existing privilege tables, so it should be safe to
run in any circumstances.
To initialize the grant tables, use one of the following commands,
depending on whether `mysql_install_db' is located in the `bin' or
`scripts' directory:
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
The `mysql_install_db' script creates the server's data directory.
Under the data directory, it creates directories for the `mysql'
database that holds all database privileges and the `test'
database that you can use to test MySQL. The script also creates
privilege table entries for `root' accounts and anonymous-user
accounts. The accounts have no passwords initially. A description
of their initial privileges is given in
default-privileges. Briefly, these privileges allow the MySQL
`root' user to do anything, and allow anybody to create or use
databases with a name of `test' or starting with `test_'.
It is important to make sure that the database directories and
files are owned by the `mysql' login account so that the server
has read and write access to them when you run it later. To ensure
this, the -user option should be used as shown if you run
`mysql_install_db' as `root'. Otherwise, you should execute the
script while logged in as `mysql', in which case you can omit the
-user option from the command.
`mysql_install_db' creates several tables in the `mysql' database,
including `user', `db', `host', `tables_priv', `columns_priv', and
`func', as well as others. See privilege-system, for a
complete listing and description of these tables.
If you don't want to have the `test' database, you can remove it
with `mysqladmin -u root drop test' after starting the server.
If you have trouble with `mysql_install_db' at this point, see
mysql-install-db.
3. Start the MySQL server:
shell> bin/mysqld_safe --user=mysql &
It is important that the MySQL server be run using an unprivileged
(non-`root') login account. To ensure this, the -user option
should be used as shown if you run `mysql_safe' as system `root'.
Otherwise, you should execute the script while logged in to the
system as `mysql', in which case you can omit the -user option
from the command.
Further instructions for running MySQL as an unprivileged user are
given in changing-mysql-user.
If you neglected to create the grant tables before proceeding to
this step, the following message appears in the error log file
when you start the server:
mysqld: Can't find file: 'host.frm'
If you have other problems starting the server, see
starting-server.
4. Use `mysqladmin' to verify that the server is running. The
following commands provide simple tests to check whether the
server is up and responding to connections:
shell> bin/mysqladmin version
shell> bin/mysqladmin variables
The output from `mysqladmin version' varies slightly depending on
your platform and version of MySQL, but should be similar to that
shown here:
shell> bin/mysqladmin version
mysqladmin Ver 14.12 Distrib 5.0.19, for pc-linux-gnu on i686
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version 5.0.19-Max
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 14 days 5 hours 5 min 21 sec
Threads: 1 Questions: 366 Slow queries: 0
Opens: 0 Flush tables: 1 Open tables: 19
Queries per second avg: 0.000
To see what else you can do with `mysqladmin', invoke it with the
-help option.
5. Verify that you can shut down the server:
shell> bin/mysqladmin -u root shutdown
6. Verify that you can start the server again. Do this by using
`mysqld_safe' or by invoking `mysqld' directly. For example:
shell> bin/mysqld_safe --user=mysql --log &
If `mysqld_safe' fails, see starting-server.
7. Run some simple tests to verify that you can retrieve information
from the server. The output should be similar to what is shown
here:
shell> bin/mysqlshow
+-----------+
| Databases |
+-----------+
| mysql |
| test |
+-----------+
shell> bin/mysqlshow mysql
Database: mysql
+---------------------------+
| Tables |
+---------------------------+
| columns_priv |
| db |
| func |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| proc |
| procs_priv |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
shell> bin/mysql -e "SELECT Host,Db,User FROM db" mysql
+------+--------+------+
| host | db | user |
+------+--------+------+
| % | test | |
| % | test_% | |
+------+--------+------+
8. There is a benchmark suite in the `sql-bench' directory (under the
MySQL installation directory) that you can use to compare how
MySQL performs on different platforms. The benchmark suite is
written in Perl. It requires the Perl DBI module that provides a
database-independent interface to the various databases, and some
other additional Perl modules:
DBI
DBD::mysql
Data::Dumper
Data::ShowTable
These modules can be obtained from CPAN (`http://www.cpan.org/').
See also perl-installation.
The `sql-bench/Results' directory contains the results from many
runs against different databases and platforms. To run all tests,
execute these commands:
shell> cd sql-bench
shell> perl run-all-tests
If you don't have the `sql-bench' directory, you probably
installed MySQL using RPM files other than the source RPM. (The
source RPM includes the `sql-bench' benchmark directory.) In this
case, you must first install the benchmark suite before you can
use it. There are separate benchmark RPM files named
`mysql-bench-VERSION-i386.rpm' that contain benchmark code and
data.
If you have a source distribution, there are also tests in its
`tests' subdirectory that you can run. For example, to run
`auto_increment.tst', execute this command from the top-level
directory of your source distribution:
shell> mysql -vvf test < ./tests/auto_increment.tst
The expected result of the test can be found in the
`./tests/auto_increment.res' file.
9. At this point, you should have the server running. However, none
of the initial MySQL accounts have a password, so you should
assign passwords using the instructions found in
default-privileges.
The MySQL 5.0 installation procedure creates time zone tables in the
`mysql' database. However, you must populate the tables manually using
the instructions in time-zone-support.
Info Catalog
(mysql.info) windows-post-installation
(mysql.info) post-installation
(mysql.info) default-privileges
automatically generated byinfo2html