User talk:Mmccarn

From SME Server
Revision as of 16:52, 8 December 2013 by Mmccarn (talk | contribs) (Mariadb backup & restore)
Jump to navigation Jump to search

Install mariadb 'alongside' mysql

Draft notes on mariadb installation

#####################################################################################
# BEGIN
#####################################################################################
# yum repos aren't useful; use the side-by-side install
# Install mariadb side-by-side with mysql on SME Server v8
# From: https://mariadb.com/kb/en/installing-mariadb-alongside-mysql/
#
# create user 'mariadb' in server-manager
#
cd ~
mkdir -p addons
cd addons
RELEASE=5.5.34
wget https://downloads.mariadb.org/interstitial/mariadb-$RELEASE/kvm-bintar-hardy-x86/mariadb-$RELEASE-linux-i686.tar.gz/from/http://mirror.jmu.edu/pub/mariadb
cd /opt
tar zxvf ~/addons/mariadb-$RELEASE-linux-i686.tar.gz
ln -s mariadb-$RELEASE-linux-i686 mariadb
mkdir mariadb-data
cp mariadb/support-files/my-medium.cnf mariadb-data/my.cnf
#
# edit my.cnf as described on the mariadb-alongside-mysql howto (link above)
chown -R mariadb:mariadb mariadb-data mariadb mariadb-$RELEASE-linux-i686
#
cp mariadb/support-files/mysql.server /etc/init.d/mariadb
chmod +x /etc/init.d/mariadb
#
# edit /etc/init.d/mariadb as described in the howto
#
cd /opt/mariadb
scripts/mysql_install_db --defaults-file=/opt/mariadb-data/my.cnf
cd /etc/init.d
chkconfig --add mariadb 
chkconfig --levels 3 mariadb on
# SME Server uses runlevel 7...
mv /etc/rc3.d/S64mariadb /etc/rc7.d
#
# customizations not mentioned in the howto:
mkdir /var/run/mariadb
chown mariadb:maridb /var/run/mariadb
#
# customize the execution line in /etc/init.d/mariadb
#
# version from howto:
#  $bindir/mysqld_safe --defaults-file=/opt/mariadb-data/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
#
# version I'm using:
# $bindir/mysqld_safe --defaults-file=/opt/mariadb-data/my.cnf --datadir="/opt/mariadb-data" --pid-file="/var/run/mariadb/mariadb.pid" $other_args >/dev/null 2>&1 &
#
# Finally, testing access requires asking for a password, then entering an empty password (SME feeds the 'root'@'localhost' password to mysql by default:
# mysql -e "SELECT VERSION();" --port=3307 --protocol=TCP -p
#
# set root password in mariadb same as root password in mysql
mysql --port=3307 --protocol=TCP -p < /var/service/mysqld/set.password
#
# Now the example version check from the howto works:    
mysql -e "SELECT VERSION();" --socket=/opt/mariadb-data/mariadb.sock

Backup & Restore

  • (RequestedDeletion) Nice notes. Would it be worth it to look at the pre-backup and pre-restore events (And config db settings) so MariaDB databases are being backup up ?
/etc/e-smith/events/actions/mariadb-dump-tables
  • Based on /etc/e-smith/events/actions/mysql-dump-tables
  • "CONNECT" options separated out for easy modification and potential movement into db variables
  • "-x" option added to the mysqldump command line to avoid an error about locking log files
#!/bin/sh
#CONNECT=--socket=/opt/mariadb-data/mariadb.sock
CONNECT="--protocol=TCP --port=3307"

if ! $(mysqladmin $CONNECT ping >/dev/null 2>&1)
then
    echo "mariadb is not running - no tables dumped" >&2
    exit 0
fi

mkdir -p /home/e-smith/db/mariadb
for db in $(mysql $CONNECT -BNre "show databases;")
do
    mysqldump $CONNECT  -x --add-drop-table  -QB "$db" -r /home/e-smith/db/mariadb/"$db".dump  || exit 1
done
/etc/e-smith/events/actions/mariadb-load-tables
  • based on /etc/e-smith/events/actions/mysql-load-tables
  • doesn't actually load the dbs
  • NEEDS EXAMINATION!
#!/bin/sh
#CONNECT=--socket=/opt/mariadb-data/mariadb.sock
CONNECT="--protocol=TCP --port=3307"
MARIADATA=/opt/mariadb-data

if ! $(mysqladmin $CONNECT ping >/dev/null 2>&1)
then    
    echo "mariadb is not running - no tables restored" >&2
    exit 0
fi

if [ ! -f $MARIADATA/mysql/user.frm ]
then
    mkdir -p /etc/e-smith/mariadb/init
    for db in $(ls /home/e-smith/db/mariadb/*.dump 2> /dev/null | grep -v '/mysql.dump')
    do
        mv $db /etc/e-smith/mariadb/init/01_$(basename $db .dump).sql
    done
fi
Automation
Backup
  • Link mariadb-dump-tables into the pre-backup event
  • Dumped tables should be included in backups as they are stored under /home/e-smith
cd /etc/e-smith/events/pre-backup
ln -s ../actions/mariadb-dump-tables S20mariadb-dump-tables
Restore - NEEDS WORK

The SME Server mysql restore is complicated by various factors that may not apply to a mariadb "alongside" installation. Here's what would need to be done to restore all mariadb databases:

  • Reinstall mariadb, including setting the password to match the mysql root password
  • Restore the 'dump' files created during pre-backup individually using:
cd /home/e-smith/db/mariadb
CONNECT=--socket=/opt/mariadb-data/mariadb.sock
mysql $CONNECT < <dbname>.dump

Install Moodle using git

Installation

###
# TODO
###
yum install php-soap --enablerepo=smedev

# 
# http://wiki.contribs.org/Moodle
#
# Manual Process

    # create ibay 'moodle'

    # fix ibay settings & permissions

IBAY=moodle
/sbin/e-smith/db accounts setprop $IBAY \
FollowSymLinks enabled \
CgiBin enabled \
AllowOverride All \
Group www \
PublicAccess global \
PHPBaseDir "/home/e-smith/files/ibays/$IBAY/:/tmp/" \
UserAccess wr-group-rd-everyone
/sbin/e-smith/signal-event remoteaccess-update
#
mkdir /home/e-smith/files/ibays/$IBAY/moodledata
chown www:www /home/e-smith/files/ibays/$IBAY/moodledata
#
# Install [[Mariadb]] "alongside"
# create mariadb database
#
mysql --socket=/opt/mariadb-data/mariadb.sock
create database moodle; 
grant all privileges on moodle.* to moodle@localhost identified by '35W0SujwtMUmLFg7qkKi' with grant option; 
#

    #

    # Download moodle using git

    # http://docs.moodle.org/26/en/Git_for_Administrators#Obtaining_the_code_from_Git

    #

cd /home/e-smith/files/ibays/$IBAY
git clone git://git.moodle.org/moodle.git
cd moodle
git branch -a
git branch --track MOODLE_26_STABLE origin/MOODLE_26_STABLE
git checkout MOODLE_26_STABLE
#
# rename git folder as html and correct ownership
#
cd /home/e-smith/files/ibays/$IBAY
mv html html.org
mv moodle html
signal-event ibay-modify $IBAY
#
# run the command line installer
# if prompted, set:
    # mysql port: 3307
    # mysql socket: /opt/mariadb-data/mariadb.sock
    #
    # if not prompted, edit /home/e-smith/files/ibays/moodle/html/config.php manually
    #
cd /home/e-smith/files/ibays/$IBAY/html/admin/cli
sudo -u www /usr/bin/php install.php

Notes on check_earlytalker

Why did you remove the Request_for_deletion template on the check_earlytalker page? AFAIK it is obsolete and should be deleted according to http://forums.contribs.org/index.php/topic,46234.msg226418.html#msg226418 - — Cactus (talk | contribs 07:05, 16 February 2012 (MST)

Here's my understanding of the Request_for_deletion addition to this page:

1) Piran posted a link to this page in a thread with the text "Install the check_earlytalker plugin": http://forums.contribs.org/index.php/topic,46229.msg226377.html#msg226377

2) Charlie noticed Piran's post, and assumed the wiki page described how to install check_earlytalker, so he made his post that the page is obsolete: http://forums.contribs.org/index.php/topic,46234.msg226418.html#msg226418

3) The page was updated with the 'Request_for_deletion' template

4) I added the reasoning to the 'talk' page outlining why the page is NOT obsolete (see below)

5) Over a year later, I removed the 'Request_for_deletion' template, assuming everyone had read and agreed with the reasoning I outlined on the 'talk' page.


Copied from http://wiki.contribs.org/Talk:Qpsmtpd_check_earlytalker - Unless there is more information elsewhere, I don't feel that this page is obsolete.

Despite the language used by piran in his mention of this page at http://forums.contribs.org/index.php/topic,46229.msg226377.html#msg226377, this page is not about adding check_earlytalker - which is included by default as mentioned by Charlie in the forum post referenced above.

This page is about:

   Documenting the functionality of check_earlytalker (what it does and why it does it)
   Documenting how to change the timeout value applied by check_earlytalker
   Documenting how to monitor check_earlytalker to see if it is being used to deny email