Creazione instanza mysql parallela

… ovvero come faccio ad avere due instanze indipendenti di mysql sullo stesso server ?

Attenzione :

Questo how-to è stato scritto e pensato per Ubuntu/Debian in particolare, alcuni path e directory potrebbero essere differenti nella vostra versione di Linux

1. Creo directory e predispongo i file di log

mkdir /var/lib/mysql2
chown −R mysql.mysql /var/lib/mysql2/
mkdir /var/log/mysql2
chown −R mysql.mysql /var/log/mysql2

2. Creo una nuova configurazione di mysql

cp -R /etc/mysql/ /etc/mysql2

A questo punto dobbiamo modificare il file di configurazione di mysql e cambiare la porta, socket e pid : 
cd /etc/mysql2/
sed −i 's/3306/3307/g' my.cnf
sed −i 's/mysqld.sock/mysqld2.sock/g' my.cnf
sed −i 's/mysqld.pid/mysqld2.pid/g' my.cnf
sed −i 's/var\/lib\/mysql/var\/lib\/mysql2/g' my.cnf
sed −i 's/var\/log\/mysql/var\/log\/mysql2/g' my.cnf

3. Inizializzazione e start

Abbiamo a questo punto dell’how-to due scelte da fare :

1. creiamo una instanza vuota con database di default come se fosse una nuova installazione 

2. Copiamo i database da un’altra instanza 

Nel caso :

1.  mysql_install_db −−user=mysql −−datadir=/var/lib/mysql2/
2. cp −R /var/lib/mysql/* /var/lib/mysql2/*

Possiamo a questo punto far partire l’instanza :
mysqld_safe --defaults-file=/etc/mysql2/my.cnf &

e connetterci in due modi :
mysql -S /var/run/mysqld/mysqld2.sock

o
mysql -h 127.0.0.1 -P 3307

Possiamo a questo punto creare uno script di init (es: mysql2) in /etc/init.d/

 Bash | 
 
 copy code |
?

01
#!/bin/sh
02
# Begin /etc/init.d/mysql
03
 
04
#source /etc/init.d/functions
05
 
06
case "$1" in
07
        start)
08
                echo -n "Starting mysql..."
09
                /usr/bin/mysqld_safe --defaults-file=/etc/mysql2/my.cnf >/dev/null 2>&1  &
10
                ret=$?
11
                ;;
12
 
13
        stop)
14
                echo -n "Stopping mysqld..."
15
#               kill `cat /var/run/mysqld/mysqld-rep.pid`
16
                mysqladmin -S /var/run/mysqld/mysqld2.sock shutdown > /dev/null 2>&1
17
                ret=$?
18
                ;;
19
 
20
        restart)
21
                $0 stop
22
                /usr/bin/sleep 1
23
                $0 start
24
                ;;
25
 
26
        status)
27
                statusproc /usr/bin/mysqld
28
                ;;
29
 
30
        *)
31
                echo "Usage: $0 {start|stop|restart|status}"
32
                exit 1
33
        ;;
34
 
35
esac
36
 
37
exit $?
38

se voglio farlo partire al boot :

update-rc.d mysql2 defaults

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ricevi un avviso se ci sono nuovi commenti. Oppure iscriviti senza commentare.