#!/bin/bash # # $Id: post-mysql-install 3661 2013-06-25 22:04:33Z dhill $ # # Post-install steps for calpont-mysql install # check log for error checkForError() { # check for password error grep "ERROR 1045" /tmp/mysql_install.log > /tmp/error.check if [ `cat /tmp/error.check | wc -c` -ne 0 ]; then echo "MySQL Password file missing or incorrect, check .my.cnf file" rm -f /tmp/error.check $installdir/mysql/mysql-Columnstore stop sleep 2 exit 2; fi rm -f /tmp/error.check #--------------------------------------------------------------------------- # See if engine columnstore exist #--------------------------------------------------------------------------- echo "checking for engine columnstore..." $installdir/mysql/bin/mysql \ --defaults-extra-file=$installdir/mysql/my.cnf \ --user=root $pwprompt \ --execute='show engines;' \ calpontsys | grep -i columnstore # # Add compressiontype column to SYSCOLUMN if applicable # if [ $? -ne 0 ]; then echo "columnstore doesn't exist" exit 1 fi echo "columnstore exist" return 0; } prefix=/usr/local installdir=$prefix/mariadb/columnstore rpmmode=install password= pwprompt= for arg in "$@"; do if [ $(expr -- "$arg" : '--prefix=') -eq 9 ]; then prefix="$(echo $arg | awk -F= '{print $2}')" installdir=$prefix/mariadb/columnstore elif [ $(expr -- "$arg" : '--rpmmode=') -eq 10 ]; then rpmmode="$(echo $arg | awk -F= '{print $2}')" elif [ $(expr -- "$arg" : '--installdir=') -eq 13 ]; then installdir="$(echo $arg | awk -F= '{print $2}')" prefix=$(dirname $installdir) else echo "ignoring unknown argument: $arg" 1>&2 fi done USER=`whoami 2>/dev/null` if [ $USER != "root" ]; then sudo ldconfig >/dev/null 2>&1 export COLUMNSTORE_INSTALL_DIR=$installdir export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$COLUMNSTORE_INSTALL_DIR/lib:$COLUMNSTORE_INSTALL_DIR/mysql/lib else ldconfig fi if [ -f $installdir/lib/libcalmysql.so.1.0.0 ]; then libcalmysql=$installdir/lib/libcalmysql.so.1.0.0 libudfsdk=$installdir/lib/libudf_mysql.so.1.0.0 elif [ -f $installdir/lib/libcalmysql.so.1 ]; then libcalmysql=$installdir/lib/libcalmysql.so.1 libudfsdk=$installdir/lib/libudf_mysql.so.1 else libcalmysql= fi if [ -d $installdir/mysql/lib64/mysql/plugin -a -n "$libcalmysql" ]; then cd $installdir/mysql/lib64/mysql/plugin ln -sf $libcalmysql libcalmysql.so ln -sf $libcalmysql libcalmysqlent.so ln -sf $libudfsdk libudf_mysql.so fi if [ $installdir != "/usr/local/mariadb/columnstore" ]; then sed -i -e s@/usr/local/mariadb/columnstore@$installdir@g $installdir/mysql/my.cnf fi if [ -x $installdir/mysql/mysql-Columnstore ]; then # Restart in the same way that mysqld will be started normally. $installdir/mysql/mysql-Columnstore stop >/dev/null 2>&1 sleep 2 $installdir/mysql/mysql-Columnstore start sleep 5 # Install various Calpont stuff... $installdir/mysql/install_calpont_mysql.sh --installdir=$installdir checkForError if [ $? -ne 0 ]; then # retry $installdir/mysql/install_calpont_mysql.sh --installdir=$installdir checkForError if [ $? -ne 0 ]; then echo "ERROR: Invalid password in .my.cnf, or Columnstore plugin install missing" $installdir/mysql/mysql-Columnstore stop sleep 2 exit 2; fi fi $installdir/mysql/mysql-Columnstore stop fi exit 0