Inspired by this horror story of an install, I've decided to see if there's a more elegant way of getting it done. I *think* I have it, but the root cause may make this fix moot.
The problem that needs to be addressed is that the dependencies listed in the .deb files provided by Codership for installing the patched mysql binaries and Galera don't line up properly with packages that you can install in Ubuntu. The version provided by Codership is based on MySQL 5.6.16, where as the repositories are up to 5.6.19. This particular problem isn't exactly unexpected due to the nature of what's being installed: A patch to MySQL.
Before you go any further, I must state the following: I have not analyzed the impact of this procedure with great depth. All I know is that initial testing indicates that there's no problem with it, but there is a reality that cannot be denied: There might be a version mis-match with some of the binary files. Until Codership delivers a version of mysql greater than 5.6.19, if you want to use the packaged version of this tool, this is the reality.
With this in mind, I set about trying to find a method of modifying the data baked into the .deb files for the prerequisites. Here's the install procedure I've used and appears to be successful. All of the following is based on a freshly installed copy of Ubuntu 14.04 and the
First, you'll need to install the MySQL 5.6 packages from the Universe repo. If you don't have the Universe repo enabled, check here.
After you have Universe enabled, you can simply install the mysql 5.6 packages, along with the required libssl0.9.8 package:
sudo apt-get install mysql-server-5.6 mysql-client-5.6 libssl0.9.8
wget https://launchpad.net/galera/3.x/25.3.5/+download/galera-25.3.5-amd64.deb https://launchpad.net/codership-mysql/5.6/5.6.16-25.5/+download/mysql-server-wsrep-5.6.16-25.5-amd64.deb
I hope that Codership will patch and release soon so this entire writeup isn't necessary to be indexed by anyone. The listed milestones on Codership's launchpad seems to suggest that they're probably close to a release using MySQL 5.6.20, which WILL make this ugly hack unneeded.
I found this thread with a nifty little script in it that I'll paste here with some very minor modifications. Take the following and save it to disk.
#!/bin/bash if [[ -z "$1" ]]; then echo "Syntax: $0 debfile" exit 1 fi DEBFILE="$1" TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1 OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb if [[ -e "$OUTPUT" ]]; then echo "$OUTPUT exists." rm -r "$TMPDIR" exit 1 fi dpkg-deb -x "$DEBFILE" "$TMPDIR" dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then echo DEBIAN/control not found. rm -r "$TMPDIR" exit 1 fi CONTROL="$TMPDIR"/DEBIAN/control MOD=`stat -c "%y" "$CONTROL"` "${FCEDIT:-${VISUAL:-${EDITOR:-vi}}}" "$CONTROL" if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then echo Not modfied. else echo Building new deb... dpkg -b "$TMPDIR" "$OUTPUT" fi rm -r "$TMPDIR"
You'll need to execute it. The easiest thing to do is set the execute bit:
# chmod +x videbcontrol
When you run videbcontrol mysql-server-wsrep-5.6.16-25.5-amd64.deb
you'll be presented with the following:
Package: mysql-server-wsrep Version: 5.6.16-25.5 Maintainer: Codership Oy Architecture: amd64 Description: wsrep-enabled MySQL server Copyright: MySQL AB, Codership Oy, All Rights Reserved MySQL server + wsrep patch (https://launchpad.net/codership-mysql) Depends: psmisc, debianutils (>= 1.6), libc6 (>= 2.4), libdbi-perl, libdbd-mysql-perl (>= 1.2202), libgcc1 (>= 4.1.1), libncurses5 (>= 5.6), libstdc++6 (>= 4.1.1), libwrap0 (>= 7.6), perl, zlib1g (>= 1.1.4), libaio1, mysql-client Replaces: mysql-server-core (<= 5.6.16), mysql-server-core-5.0 (<= 5.6.16), mysql-server-core-5.1 (<= 5.6.16), mysql-server (<= 5.6.16), mysql-server-5.0 (<= 5.6.16), mysql-server-5.1 (<= 5.6.16), mysql-server-5.6 (<= 5.6.16), mysql-server-5.5 (<= 5.6.16) Provides: mysql-server-core, mysql-server, mysql-server-5.6
Package: mysql-server-wsrep
Version: 5.6.16-25.5
Maintainer: Codership Oy
Architecture: amd64
Description: wsrep-enabled MySQL server
Copyright: MySQL AB, Codership Oy, All Rights Reserved
MySQL server + wsrep patch (https://launchpad.net/codership-mysql)
Depends: psmisc, debianutils (>= 1.6), libc6 (>= 2.4), libdbi-perl, libdbd-mysql-perl (>= 1.2202), libgcc1 (>= 4.1.1), libncurses5 (>= 5.6), libstdc++6 (>= 4.1.1), libwrap0 (>= 7.6), perl, zlib1g (>= 1.1.4), libaio1, mysql-client-5.6, libssl0.9.8
Replaces: mysql-server-core (<= 5.6.16), mysql-server-core-5.0 (<= 5.6.16), mysql-server-core-5.1 (<= 5.6.16), mysql-server (<= 5.6.16), mysql-server-5.0 (<= 5.6.16), mysql-server-5.1 (<= 5.6.16), mysql-server-5.6 (<= 5.6.20), mysql-server-5.5 (<= 5.6.16), mysql-server-core-5.6 (<= 5.6.20)
Provides: mysql-server-core, mysql-server, mysql-server-5.6, mysql-server-core-5.6
When you save and exit your editor, videbcontrol
will save a new file called mysql-server-wsrep-5.6.16-25.5-amd64.modified.deb
You can then install the two .deb packages without any carping. Be sure you install the modified mysql package.
sudo dpkg -i mysql-server-wsrep-5.6.16-25.5-amd64.modfied.deb sudo dpkg -i galera-25.3.5-amd64.deb
/etc/mysql/conf.d/wsrep.cnf
by inserting the following lines in the [mysqld]
section:
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_address = "gcomm://"
And finally, restart Mysql:
sudo service mysql restart
When you connect to mysql, it should give you the following:
Server version: 5.6.16 MySQL Community Server (GPL), wsrep_25.5.r4064 Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
No comments:
Post a Comment