DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(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