2.2 Installing MySQL on Unix/Linux Using Generic Binaries

Oracle provides a set of binary distributions of MySQL. These include generic binary distributions in the form of compressed 'tar' files (files with a '.tar.gz' extension) for a number of platforms, and binaries in platform-specific package formats for selected platforms.

This section covers the installation of MySQL from a compressed 'tar' file binary distribution on Unix/Linux platforms. For Linux-generic binary distribution installation instructions with a focus on MySQL security features, refer to the Secure Deployment Guide (https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/). For other platform-specific binary package formats, see the other platform-specific sections in this manual. For example, for Windows distributions, see note windows-installation::. See note getting-mysql:: on how to obtain MySQL in different distribution formats.

MySQL compressed 'tar' file binary distributions have names of the form 'mysql-VERSION-OS.tar.gz', where 'VERSION' is a number (for example, '5.7.44'), and OS indicates the type of operating system for which the distribution is intended (for example, 'pc-linux-i686' or 'winx64').

Warnings:

To install a compressed 'tar' file binary distribution, unpack it at the installation location you choose (typically '/usr/local/mysql'). This creates the directories shown in the following table.

MySQL Installation Layout for Generic Unix/Linux Binary Package

Directory Contents of Directory

'bin' *note 'mysqld': mysqld. server, client and utility programs

'docs' MySQL manual in Info format

'man' Unix manual pages

'include' Include (header) files

'lib' Libraries

'share' Error messages, dictionary, and SQL for database installation

'support-files' Miscellaneous support files

Debug versions of the note 'mysqld': mysqld. binary are available as note 'mysqld-debug': mysqld. To compile your own debug version of MySQL from a source distribution, use the appropriate configuration options to enable debugging support. See *note source-installation::.

To install and use a MySQL binary distribution, the command sequence looks like this:

 $> groupadd mysql
 $> useradd -r -g mysql -s /bin/false mysql
 $> cd /usr/local
 $> tar zxvf /PATH/TO/MYSQL-VERSION-OS.tar.gz
 $> ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
 $> cd mysql
 $> mkdir mysql-files
 $> chown mysql:mysql mysql-files
 $> chmod 750 mysql-files
 $> bin/mysqld --initialize --user=mysql
 $> bin/mysql_ssl_rsa_setup
 $> bin/mysqld_safe --user=mysql &
 # Next command is optional
 $> cp support-files/mysql.server /etc/init.d/mysql.server

Note:

This procedure assumes that you have 'root' (administrator) access to your system. Alternatively, you can prefix each command using the 'sudo' (Linux) or 'pfexec' (Solaris) command.

The 'mysql-files' directory provides a convenient location to use as the value for the 'secure_file_priv' system variable, which limits import and export operations to a specific directory. See *note server-system-variables::.

A more detailed version of the preceding description for installing a binary distribution follows.

Create a mysql User and Group

If your system does not already have a user and group to use for running *note 'mysqld': mysqld, you may need to create them. The following commands add the 'mysql' group and the 'mysql' user. You might want to call the user and group something else instead of 'mysql'. If so, substitute the appropriate name in the following instructions. The syntax for 'useradd' and 'groupadd' may differ slightly on different versions of Unix/Linux, or they may have different names such as 'adduser' and 'addgroup'.

 $> groupadd mysql
 $> useradd -r -g mysql -s /bin/false mysql

Note:

Because the user is required only for ownership purposes, not login purposes, the 'useradd' command uses the '-r' and '-s /bin/false' options to create a user that does not have login permissions to your server host. Omit these options if your 'useradd' does not support them.

Obtain and Unpack the Distribution

Pick the directory under which you want to unpack the distribution and change location into it. The example here unpacks the distribution under '/usr/local'. The instructions, therefore, assume that you have permission to create files and directories in '/usr/local'. If that directory is protected, you must perform the installation as 'root'.

 $> cd /usr/local

Obtain a distribution file using the instructions in *note getting-mysql::. For a given release, binary distributions for all platforms are built from the same MySQL source distribution.

Unpack the distribution, which creates the installation directory. 'tar' can uncompress and unpack the distribution if it has 'z' option support:

 $> tar zxvf /PATH/TO/MYSQL-VERSION-OS.tar.gz

The 'tar' command creates a directory named 'mysql-VERSION-OS'.

To install MySQL from a compressed 'tar' file binary distribution, your system must have GNU 'gunzip' to uncompress the distribution and a reasonable 'tar' to unpack it. If your 'tar' program supports the 'z' option, it can both uncompress and unpack the file.

GNU 'tar' is known to work. The standard 'tar' provided with some operating systems is not able to unpack the long file names in the MySQL distribution. You should download and install GNU 'tar', or if available, use a preinstalled version of GNU tar. Usually this is available as 'gnutar', 'gtar', or as 'tar' within a GNU or Free Software directory, such as '/usr/sfw/bin' or '/usr/local/bin'. GNU 'tar' is available from http://www.gnu.org/software/tar/.

If your 'tar' does not have 'z' option support, use 'gunzip' to unpack the distribution and 'tar' to unpack it. Replace the preceding 'tar' command with the following alternative command to uncompress and extract the distribution:

 $> gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz | tar xvf -

Next, create a symbolic link to the installation directory created by 'tar':

 $> ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql

The 'ln' command makes a symbolic link to the installation directory. This enables you to refer more easily to it as '/usr/local/mysql'. To avoid having to type the path name of client programs always when you are working with MySQL, you can add the '/usr/local/mysql/bin' directory to your 'PATH' variable:

 $> export PATH=$PATH:/usr/local/mysql/bin

Perform Postinstallation Setup

The remainder of the installation process involves setting distribution ownership and access permissions, initializing the data directory, starting the MySQL server, and setting up the configuration file. For instructions, see *note postinstallation::.

 File: manual.info.tmp, Node: windows-installation, Next: macos-installation, Prev: binary-installation, Up: installing