This section covers the installation of MySQL binary distributions that are provided for various platforms in the form of tar files (files with a .tar.gz extension). See MySQL binaries for a detailed list.
In addition to these generic packages, we also offer binaries in platform-specific package formats for selected platforms. See Quick Standard Installation for more information on how to install these.
You need the following tools to install a MySQL tar file binary distribution:
GNU gunzip to uncompress the distribution.
A reasonable tar to unpack the distribution. GNU tar is known to work. Some operating systems come with a pre-installed version of tar that is known to have problems. For example, Sun tar and Mac OS X tar are known to have problems with long filenames. In such cases, you should install GNU tar first. On Mac OS X, you can use the pre-installed gnutar program.
If you run into problems, please always use mysqlbug when posting questions to a MySQL mailing list. Even if the problem isn't a bug, mysqlbug gathers system information that will help others solve your problem. By not using mysqlbug, you lessen the likelihood of getting a solution to your problem. You will find mysqlbug in the bin directory after you unpack the distribution. See Bug reports.
The basic commands you must execute to install and use a MySQL binary distribution are:
shell> groupadd mysql shell> useradd -g mysql mysql shell> cd /usr/local shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf - shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql shell> scripts/mysql_install_db shell> chown -R root . shell> chown -R mysql data shell> chgrp -R mysql . shell> bin/mysqld_safe --user=mysql &
For versions of MySQL older than 4.0, substitute bin/safe_mysqld for bin/mysqld_safe in the final command.
A more detailed description follows.
To install a binary distribution, follow these steps, then proceed to Post-installation, for post-installation setup and testing:
Add a user and group for mysqld to run as:
shell> groupadd mysql shell> useradd -g mysql mysql
These commands add the mysql group and the mysql user. The syntax for useradd and groupadd may differ slightly on different versions of Unix. They may also be called adduser and addgroup. You may wish to call the user and group something else instead of mysql.
Pick the directory under which you want to unpack the distribution, and move into it. In the following example, we unpack the distribution under /usr/local (The following instructions, therefore, assume you have permission to create files and directories in /usr/local. If that directory is protected, you will need to perform the installation as root.)
Obtain a distribution file from one of the sites listed in Getting MySQL.
MySQL tar file binary distributions have names like mysql-VERSION-OS.tar.gz, where VERSION is a number (for example, 4.0.17), and OS indicates the type of operating system for which the distribution is intended (for example, pc-linux-gnu-i586). For a given release, binary distributions for all platforms are built from the same MySQL source distribution.
Change into the intended installation directory:
shell> cd /usr/local
Unpack the distribution, which will create the installation directory. Then create a symbolic link to that directory:
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf - shell> ln -s full-path-to-mysql-VERSION-OS mysql
The tar command creates a directory named mysql-VERSION-OS. The ln command makes a symbolic link to that directory. This lets you refer more easily to the installation directory as /usr/local/mysql.
With GNU tar, no separate invocation of gunzip is necessary. You can replace the first line with the following alternative command to uncompress and extract the distribution:
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
Change into the installation directory:
shell> cd mysql
You will find several files and subdirectories in the mysql directory. The most important for installation purposes are the bin and scripts subdirectories.
bin | This directory contains client programs and the server. You should add the full pathname of this directory to your PATH environment variable so that your shell finds the MySQL programs properly. See Environment variables. |
scripts | This directory contains the mysql_install_db script used to initialize the mysql database containing the grant tables that store the server access permissions. |
If you haven't installed MySQL before, you must create the MySQL grant tables:
shell> scripts/mysql_install_db
Note that for MySQL versions older than Version 3.22.10, mysql_install_db left the server running after creating the grant tables. This is no longer true; you will need to restart the server after performing the remaining steps in this procedure.
Change ownership of program binaries to root and ownership of the data directory to the user that you will run mysqld as. Assuming that you are located in the installation directory (/usr/local/mysql), the commands look like this:
shell> chown -R root . shell> chown -R mysql data shell> chgrp -R mysql .
The first command changes the owner attribute of the files to the root user. The second changes the owner attribute of the data directory to the mysql user. The third changes the group attribute to the mysql group.
If you would like MySQL to start automatically when you boot your machine, you can copy support-files/mysql.server to the location where your system has its startup files. More information can be found in the support-files/mysql.server script itself and in Automatic start.
You can set up new accounts using the bin/mysql_setpermission script if you install the DBI and DBD::mysql Perl modules. For instructions, see Perl support.
If you would like to use mysqlaccess and have the MySQL distribution in some non-standard place, you must change the location where mysqlaccess expects to find the mysql client. Edit the bin/mysqlaccess script at approximately line 18. Search for a line that looks like this:
$MYSQL = '/usr/local/bin/mysql'; # path to mysql executable
Change the path to reflect the location where mysql actually is stored on your system. If you do not do this, you will get a Broken pipe error when you run mysqlaccess.
After everything has been unpacked and installed, you should test your distribution.
You can start the MySQL server with the following command:
shell> bin/mysqld_safe --user=mysql &
For versions of MySQL older than 4.0, substitute bin/safe_mysqld for bin/mysqld_safe in the command.
Now proceed to mysqld_safe, and Post-installation.