Thursday, June 5, 2014

How to compile Percona XtraDB Cluster 5.6 on Ubuntu 14.04 Trusty Tahr

Getting a new server with the latest LTS started out like great news, but soon turned out to be a "couple" of hours wasted on google'n without success.

#percona on freenode is sadly still very very idle and of no help, and after reading different sources such as
http://www.percona.com/doc/percona-xtradb-cluster/5.5/installation/compiling_xtradb_cluster.html
http://www.percona.com/doc/percona-xtradb-cluster/5.6/installation/compiling_xtradb_cluster.html
https://mariadb.com/kb/en/building-the-galera-wsrep-package-on-ubuntu-and-debian/

I managed to get it all working and wanted to share the success.


Note: There might be more packages that need to be installed that I already had when installing another application, if you get an error along the way, leave a comment and I'll help out and update the blog as we go along.

apt-get install bzr openssl cmake libncurses5-dev bison xinetd socat build-essential flex bison automake autoconf bzr libtool libaio-dev zlib1g-dev libboost-dev

Next, we'll go on with the compile & install. Note if you are (for some reason) compiling on a 32bit machine use ./BUILD/compile-pentium else use ./BUILD/compile-pentium64 as the paste below does.
mkdir /app/sources -p
cd /app/sources
rm -fr percona
mkdir percona
cd percona

bzr checkout --lightweight lp:percona-xtradb-cluster/5.6
./BUILD/compile-pentium64
make install

# only needed for clusterchek (haproxy)
cp scripts/clustercheck /usr/bin/
cp scripts/mysqlchk /etc/xinetd.d/

# standard debian packages
cp build-ps/debian/additions/debian-start /etc/mysql/
cp build/debian/percona-xtradb-cluster-server-5.6.mysql.init /etc/init.d/mysql
chmod +x /etc/init.d/mysql

# make the debian scripts work with our compiled folders
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql/bin/mysqld_safe /usr/bin/mysqld_safe
ln -s /usr/local/mysql/bin/mysqld /usr/sbin/mysqld
ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin

groupadd mysql
useradd -r -g mysql mysql

chown -R mysql:mysql /usr/local/mysql

The symlinks are added to make the installment as close as possible to the default MySQL for Ubuntu. That way we don't need to update the standard scripts of init.d, xinet.d, clustercheck and others.


Last thing that we are missing is the galera module, you know - the one we point in our config file: wsrep_provider=/usr/lib/libgalera_smm.so
So after compiling it from source as specified by a document I found on MariaDB, I found that it was very time consuming while the result was the same as using the galera-module from Perconas sources which was luckely in the repo.

(remember to add perconas repo before doing the next step http://www.percona.com/doc/percona-server/5.6/installation/apt_repo.html)

apt-get install percona-xtradb-cluster-galera-3.x

That's it! Now you have a fresh MySQL installment ready to be tested with your own my.cnf file.
Remember to restart xined if you will use tools such as HaProxy to monitor the clusterstatus.



Happy Pasting!



No comments:

Post a Comment