.. _installation: =============================================== Installing |Percona Server| 5.5 from Binaries =============================================== Before installing, you might want to read the :doc:`release-notes/release-notes_index`. Ready-to-use binaries are available from the |Percona Server| `download page `_, including: * ``RPM`` packages for *RHEL* 5 and *RHEL* 6 * *Debian* packages for *Debian* and *Ubuntu* .. * *Microsoft Windows* binaries * Generic ``.tar.gz`` packages Using Percona Software Repositories =================================== .. toctree:: :maxdepth: 1 installation/apt_repo installation/yum_repo |Percona| provides repositories for :program:`yum` (``RPM`` packages for *Red Hat*, *CentOS* and *Amazon Linux AMI*) and :program:`apt` (:file:`.deb` packages for *Ubuntu* and *Debian*) for software such as |Percona Server|, |XtraDB|, |XtraBackup|, and *Percona Toolkit*. This makes it easy to install and update your software and its dependencies through your operating system's package manager. This is the recommend way of installing where possible. ``YUM``-Based Systems --------------------- Once the repository is set up, use the following commands: :: $ yum install Percona-Server-client-55 Percona-Server-server-55 ``DEB``-Based Systems --------------------- Once the repository is set up, use the following commands: :: $ sudo apt-get install percona-server-server-5.5 Using Standalone Packages ========================= ``RPM``-Based Systems --------------------- Download the packages of the desired series for your architecture from `here `_. For example, at the moment of writing, a way of doing this is: :: $ wget -r -l 1 -nd -A rpm -R "*devel*,*debuginfo*" \ http://www.percona.com/redir/downloads/Percona-Server-5.5/Percona-Server-5.5.14-20.5/RPM/rhel5/i686/ Install them in one command: :: $ rpm -ivh Percona-Server-server-55-5.5.14-rel20.5.149.rhel5.i686.rpm \ Percona-Server-client-55-5.5.14-rel20.5.149.rhel5.i686.rpm \ Percona-Server-shared-55-5.5.14-rel20.5.149.rhel5.i686.rpm If you don’t install all “at the same time”, you will need to do it in a specific order - ``shared``, ``client``, ``server``: :: $ rpm -ivh Percona-Server-shared-55-5.5.14-rel20.5.149.rhel5.i686.rpm $ rpm -ivh Percona-Server-client-55-5.5.14-rel20.5.149.rhel5.i686.rpm $ rpm -ivh Percona-Server-server-55-5.5.14-rel20.5.149.rhel5.i686.rpm Otherwise, the dependencies won’t be met and the installation will fail. What's in each RPM? ~~~~~~~~~~~~~~~~~~~ Each of the |Percona Server| RPM packages have a particular purpose. The ``Percona-Server-server`` package contains the server itself (the ``mysqld`` binary). The ``Percona-Server-55-debuginfo`` package contains debug symbols for use debugging the database server. The ``Percona-Server-client`` package contains the command line client. The ``Percona-Server-devel`` package contains the header files needed to compile software using the client library. The ``Percona-Server-shared`` package includes the client shared library. The ``Percona-Server-shared-compat`` package includes shared libraries for software compiled against old versions of the client library. The ``Percona-Server-test`` package includes the test suite for |Percona Server|. ``DEB``-Based Systems --------------------- Download the packages of the desired series for your architecture from `here `_. For example, at the moment of writing, for *Ubuntu* Maverick on ``i686``, a way of doing this is: :: $ wget -r -l 1 -nd -A deb -R "*dev*" \ http://www.percona.com/redir/downloads/Percona-Server-5.5/Percona-Server-5.5.14-20.5/deb/maverick/x86_64/ Install them in one command: :: $ sudo dpkg -i *.deb The installation won’t succeed as there will be missing dependencies. To handle this, use: :: $ apt-get -f install and all dependencies will be installed and the Percona Server installation will be finished by :command:`apt`. What's in each DEB package? ~~~~~~~~~~~~~~~~~~~~~~~~~~~ The ``percona-server-server`` package contains the database server itself, the ``mysqld`` binary and associated files. The ``percona-server-common`` package contains files common to the server and client. The ``percona-server-client`` package contains the command line client. The ``percona-server-dfsg`` package contains.... The ``libmysqlclient-dev`` package contains header files needed to compile software to use the client library. The ``libmysqlclient18`` package contains the client shared library. The ``18`` is a reference to the version of the shared library. The version is incremented when there is a ABI change that requires software using the client library to be recompiled or their source code modified. =================================================== Installing |Percona Server| from a Source Tarball =================================================== Fetch and extract the source tarball. For example: :: $ wget http://www.percona.com/redir/downloads/Percona-Server-5.5/Percona-Server-5.5.15-21.0/source/Percona-Server-5.5.15-rel21.0.tar.gz $ tar xfz Percona-Server-5.5.15-rel21.0.tar.gz Next, run cmake to configure the build. Here you can specify all the normal build options as you do for a normal |MySQL| build. Depending on what options you wish to compile Percona Server with, you may need other libraries installed on your system. Here is an example using a configure line similar to the options that Percona uses to produce binaries: :: $ cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DWITH_EMBEDDED_SERVER=OFF Now, compile using make :: $ make Install: :: $ make install ========================================================= Installing |Percona Server| from the Bazaar Source Tree ========================================================= Percona uses the `Bazaar `_ revision control system for development. To build the latest Percona Server from the source tree you will need Bazaar installed on your system. Good practice is to use a shared repository, create one like this: :: $ bzr init-repo ~/percona-server You can now fetch the latest Percona Server 5.5 sources. In the future, we will provide instructions for fetching each specific Percona Server version and building it, but currently we will just talk about building the latest Percona Server 5.5 development tree. :: $ cd ~/percona-server $ bzr branch lp:percona-server/5.5 You can now change into the 5.5 directory and build Percona Server 5.5: :: $ make This will fetch the upstream MySQL source tarball and apply the Percona Server patches to it. If you have the quilt utility installed, it will use it to apply the patches, otherwise it will just use the standard patch utility. You will then have a directory named Percona-Server that is ready to run the configure script and build. :: $ cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DWITH_EMBEDDED_SERVER=OFF $ make $ make install .. note:: :ref:`pam_plugin` has been merged into |Percona Server| in :rn:`5.5.24-26.0` but it is not built with the server by default. In order to build the Percona Server with PAM plugin, additional option :option:`-DWITH_PAM=ON` should be used.