To install or upgrade to MySQL 5.6.11 or later, be sure to read the special instructions at the end of this section.
The recommended way to install MySQL on RPM-based Linux
distributions that use glibc is by using the
RPM packages provided by Oracle. There are two sources for
obtaining the Community versions of the RPM packages:
From the MySQL software repositories, for the following platforms:
For EL5, EL6, or EL7-based platforms and Fedora 24, use the MySQL Yum repository (see Section 2.5.1, “Installing MySQL on Linux Using the MySQL Yum Repository” for details).
For SUSE Enterprise Linux Server, use the MySQL SLES repository (see Section 2.5.4, “Installing MySQL on Linux Using the MySQL SLES Repository” for details).
From the MySQL Downloads page in the MySQL Developer Zone, which provides RPM packages that work for different platforms.
The discussion in this section applies only to the RPM packages downloaded from the MySQL Developer Zone. Installations created with these packages result in files under the system directories shown in the following table.
Table 2.6 MySQL Installation Layout for Linux RPM Packages from the MySQL Developer Zone
| Directory | Contents of Directory |
|---|---|
/usr/bin | Client programs and scripts |
/usr/sbin | The mysqld server |
/var/lib/mysql | Log files, databases |
/var/lib/mysql-files | Value of secure_file_priv |
/usr/share/info | MySQL manual in Info format |
/usr/share/man | Unix manual pages |
/usr/include/mysql | Include (header) files |
/usr/lib/mysql | Libraries |
/usr/share/mysql | Miscellaneous support files, including error messages, character set files, sample configuration files, SQL for database installation |
/usr/share/sql-bench | Benchmarks |
RPM distributions of MySQL are also provided by other vendors. Be aware that they may differ from those built by Oracle in features, capabilities, and conventions (including communication setup), and that the instructions in this manual do not necessarily apply to installing them. The vendor's instructions should be consulted instead. Because of these differences, RPM packages built by Oracle check whether such RPMs built by other vendors are installed. If so, the RPM does not install and produces a message explaining this.
Conflicts can arise when an RPM from another vendor is already
installed, such as when a vendor's conventions about which files
belong with the server and which belong with the client library
differ from the breakdown used for Oracle packages. In such
cases, attempts to install an Oracle RPM with rpm
-i may result in messages that files in the RPM to be
installed conflict with files from an installed package (denoted
mysql-libs in the following paragraphs).
Each MySQL release provides a
MySQL-shared-compat package that is meant to
replace mysql-libs and provides a
replacement-compatible client library for older MySQL series.
MySQL-shared-compat is set up to make
mysql-libs obsolete, but
rpm explicitly refuses to replace obsoleted
packages when invoked with -i (unlike
-U), which is why installation with
rpm -i produces a conflict.
MySQL-shared-compat can safely be installed
alongside mysql-libs because libraries are
installed to different locations. Therefore, it is possible to
install MySQL-shared-compat first, then
manually remove mysql-libs before continuing
with the installation. After mysql-libs is
removed, the dynamic linker stops looking for the client library
in the location where mysql-libs puts it, and
the library provided by the
MySQL-shared-compat package takes over.
Another alternative is to install packages using
yum. In a directory containing all RPM
packages for a MySQL release, yum install
MySQL*rpm installs them in the correct order and
removes mysql-libs in one step without
conflicts.
In most cases, you need install only the
MySQL-server and
MySQL-client packages to get a functional
standard MySQL installation. The other packages are not required
for a standard installation.
As of MySQL 5.6.8, new RPM install operations (not upgrades)
invoke mysql_install_db with the
--random-passwords option
that provides for more secure MySQL installation. Invoking
mysql_install_db with
--random-passwords causes
it to assign a random password to the MySQL
root accounts, set the “password
expired” flag for those accounts, and not create
anonymous-user MySQL accounts. It will be necessary after
installation to start the server, connect as
root using the initial random password, and
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. For additional
details, see Section 4.4.3, “mysql_install_db — Initialize MySQL Data Directory”. (Install
operations using RPMs for Unbreakable Linux Network are unaffected
because they do not use mysql_install_db.)
RPMs for MySQL Cluster.
Standard MySQL server RPMs built by MySQL do not provide
support for the NDBCLUSTER
storage engine. For more information about installing MySQL
Cluster from RPMs, see
Section 18.2, “NDB Cluster Installation”.
When upgrading a MySQL Cluster RPM installation, you must
upgrade all installed RPMs, including the
Server and Client RPMs.
For upgrades, if your installation was originally produced by installing multiple RPM packages, it is best to upgrade all the installed packages, not just some. For example, if you previously installed the server and client RPMs, do not upgrade just the server RPM.
If the data directory exists at RPM installation time, the installation process does not modify existing data. This has the effect, for example, that accounts in the grant tables are not initialized to the default set of accounts.
If you get a dependency failure when trying to install MySQL
packages (for example, error: removing these packages
would break dependencies: libmysqlclient.so.10 is needed by
...), you should also install the
MySQL-shared-compat package, which includes the
shared libraries for older releases for backward compatibility.
The following list shows the available RPM packages. The names
shown here use a suffix of
.linux_glibc2.5.i386.rpm, but particular
packages can have different suffixes, described later. If you plan
to install multiple RPM packages, you may wish to download the RPM
Bundle tar file instead, which contains
multiple RPM packages so that you need not download them
separately.
MySQL-server-
VERSION.linux_glibc2.5.i386.rpm
The MySQL server. You need this unless you only want to connect to a MySQL server running on another machine.
MySQL-client-
VERSION.linux_glibc2.5.i386.rpm
The standard MySQL client programs. You probably always want to install this package.
MySQL-devel-
VERSION.linux_glibc2.5.i386.rpm
The libraries and include files needed to compile other MySQL clients, such as the Perl MySQL module. Install this RPM if you intend to compile C API applications.
MySQL-shared-
VERSION.linux_glibc2.5.i386.rpm
The shared libraries (libmysqlclient.so*)
that certain languages and applications need to dynamically
load and use MySQL. It contains single-threaded and
thread-safe libraries. Install this RPM if you intend to
compile or run C API applications that depend on the shared
client library.
MySQL-shared-compat-
VERSION.linux_glibc2.5.i386.rpm
The shared libraries for older releases, but not the libraries for the current release. It contains single-threaded and thread-safe libraries. Install this package if you have applications installed that are dynamically linked against older versions of MySQL but you want to upgrade to the current version without breaking the library dependencies.
As of MySQL 5.6.5, the MySQL-shared-compat
RPM package enables users of Red Hat-provided
mysql-*-5.1 RPM packages to migrate to
Oracle-provided MySQL-*-5.5 packages.
MySQL-shared-compat replaces the Red Hat
mysql-libs package by replacing
libmysqlclient.so files of the latter
package, thus satisfying dependencies of other packages on
mysql-libs. This change affects only users
of Red Hat (or Red Hat-compatible) RPM packages. Nothing is
different for users of Oracle RPM packages.
MySQL-embedded-
VERSION.linux_glibc2.5.i386.rpm
The embedded MySQL server library.
MySQL-test-
VERSION.linux_glibc2.5.i386.rpm
The MySQL test suite.
MySQL-
VERSION.src.rpm
The source code for all of the previous packages. It can also be used to rebuild the RPMs on other architectures (for example, SPARC).
In RPM package names, the suffix (following the
VERSION value) has the following
syntax:
.PLATFORM.CPU.rpm
The PLATFORM and
CPU values indicate the type of system
for which the package is built.
PLATFORM indicates the platform and
CPU indicates the processor type or
family.
All packages are dynamically linked against
glibc 2.5. The
PLATFORM value indicates whether the
package is platform independent or intended for a specific
platform, as shown in the following table.
Table 2.7 MySQL Linux RPM Package Platforms
PLATFORM Value | Intended Use |
|---|---|
linux_glibc25 | Platform independent, should run on any Linux distribution that supports
glibc 2.5 |
rhel5 | Red Hat Enterprise Linux 5 |
el6, el7 | Enterprise Linux 6 or 7 |
sles11, sles12 | SUSE Linux Enterprise Server 11 or 12 |
In MySQL 5.6, only linux_glibc2.5
packages are available currently.
The CPU value indicates the processor
type or family for which the package is built, as shown in the
following table.
Table 2.8 MySQL Linux RPM Package CPU Identifiers
CPU Value | Intended Processor Type or Family |
|---|---|
i386, i686 | Pentium processor or better, 32 bit |
x86_64 | 64-bit x86 processor |
To see all files in an RPM package (for example, a
MySQL-server RPM), run a command like this
(modify the platform and CPU identifiers appropriately for your
system):
shell> rpm -qpl MySQL-server-VERSION.linux_glibc2.5.i386.rpm
To perform a standard minimal installation, install the server and client RPMs:
shell>rpm -i MySQL-server-shell>VERSION.linux_glibc2.5.i386.rpmrpm -i MySQL-client-VERSION.linux_glibc2.5.i386.rpm
To install only the client programs, install just the client RPM:
shell> rpm -i MySQL-client-VERSION.linux_glibc2.5.i386.rpm
RPM provides a feature to verify the integrity and authenticity of packages before installing them. To learn more about this feature, see Section 2.1.3, “Verifying Package Integrity Using MD5 Checksums or GnuPG”.
The server RPM places data under the
/var/lib/mysql directory. The RPM also
creates a login account for a user named mysql
(if one does not exist) to use for running the MySQL server, and
creates the appropriate entries in
/etc/init.d/ to start the server
automatically at boot time. (This means that if you have performed
a previous installation and have made changes to its startup
script, you may want to make a copy of the script so that you can
reinstall it after you install a newer RPM.) See
Section 2.10.5, “Starting and Stopping MySQL Automatically”, for more information on how
MySQL can be started automatically at system startup.
In MySQL 5.6, for a new installation using RPM packages, the server boot scripts are installed, but the MySQL server is not started at the end of the installation, since the status of the server during an unattended installation is not known.
In MySQL 5.6, for an upgrade installation using RPM packages, if the MySQL server is running when the upgrade occurs, the MySQL server is stopped, the upgrade occurs, and the MySQL server is restarted. If the MySQL server is not already running when the RPM upgrade occurs, the MySQL server is not started at the end of the installation.
Upgrading from a community version to a commercial version of MySQL requires that you first uninstall the community version and then install the commercial version. In this case, you must restart the server manually after the upgrade.
If something goes wrong, you can find more information in the binary installation section. See Section 2.2, “Installing MySQL on Unix/Linux Using Generic Binaries”.
The accounts created in the MySQL grant tables for an RPM installation initially have no passwords. After starting the server, you should assign passwords to them using the instructions in Section 2.10, “Postinstallation Setup and Testing”.
An RPM installation creates a user named mysql
and a group named mysql on the system using the
useradd, groupadd, and
usermod commands. Those commands require
appropriate administrative privileges, which is required for
locally managed users and groups (as listed in the
/etc/passwd and
/etc/group files) by the RPM installation
process being run by root.
If you log in as the mysql user, you may find
that MySQL displays “Invalid (old?) table or database
name” errors that mention .mysqlgui,
lost+found, .mysqlgui,
.bash_history,
.fonts.cache-1,
.lesshst,
.mysql_history,
.profile, .viminfo, and
similar files created by MySQL or operating system utilities. You
can safely ignore these error messages or remove the files or
directories that cause them if you do not need them.
For nonlocal user management (LDAP, NIS, and so forth), the administrative tools may require additional authentication (such as a password), and will fail if the installing user does not provide this authentication. Even if they fail, the RPM installation will not abort but succeed, and this is intentional. If they failed, some of the intended transfer of ownership may be missing, and it is recommended that the system administrator then manually ensures some appropriate user and group exists and manually transfers ownership following the actions in the RPM spec file.
In MySQL 5.6.11, the RPM spec file has been updated, which has the following consequences:
For a non-upgrade installation (no existing MySQL version installed), it is possible to install MySQL using yum.
For upgrades, it is necessary to clean up any earlier MySQL installations. In effect, the update is performed by removing the old installations and installing the new one.
Additional details follow.
For a non-upgrade installation of MySQL 5.6.11 or later, it is possible to install using yum:
shell> yum install MySQL-server-NEWVERSION.linux_glibc2.5.i386.rpm
For upgrades to MySQL 5.6.11 or later, perform the upgrade by removing the old installation and installing the new one:
Remove the existing 5.6.X
installation. OLDVERSION is the
version to remove.
shell> rpm -e MySQL-server-OLDVERSION.linux_glibc2.5.i386.rpm
Repeat this step for all installed MySQL RPMs.
Install the new version. NEWVERSION
is the version to install.
shell> rpm -ivh MySQL-server-NEWVERSION.linux_glibc2.5.i386.rpm
Alternatively, the removal and installation can be done using yum:
shell>yum remove MySQL-server-shell>OLDVERSION.linux_glibc2.5.i386.rpmyum install MySQL-server-NEWVERSION.linux_glibc2.5.i386.rpm
For some Linux distributions, it might be necessary to increase the limit on number of file descriptors available to mysqld. See Section B.5.2.18, “File Not Found and Similar Errors”