Jak uruchomić dwie instancje (izolowane procesy) serwera MySQL na jednej maszynie ?

Z Podręcznik Administratora by OPZ SGU
Przejdź do nawigacji Przejdź do wyszukiwania

Cel ?

Zwiększenie poziomu bezpieczeństwa poprzez fizyczną izolację baz danych (kont użytkowników), oraz ich procesów.

Powyższy opis został przeznaczony dla systemu Debian Lenny, w innych systemach ścieżki mogą się trochę różnić.


1) Tworzymy folder w którym przechowywane będą fizycznie bazy danych drugiego procesu mysql.

mkdir /var/lib/mysql_backup

2) Przejmujemy uprawnienia do utworzonego katalogu dla użytkownika mysql (jeżeli o tym zapomnimy, mysql nie będzie w stanie zapisać "domyślnej" bazy danych, i skończy się na głupich błędach.

chown mysql.mysql /var/lib/mysql_backup/

3) Kopiujemy plik my.cnf

cp /etc/my.cnf /etc/my_backup.cnf

4)edytujemy plik /etc/my_backup.cnf

i zmieniamy następujące wartości na swoje:

pid-file
socket
port
datadir
log

w moim wypadku będzie to:

[mysqld]
pid-file = /var/lib/mysql_backup/mysql_backup.pid
socket = /var/lib/mysql_backup/mysql_backup.sock
port = 3300
datadir = /var/lib/mysql_backup
log = /var/log/mysql_backup.log

5) Tworzymy domyślne struktury bazy danych

/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/var/lib/mysql_backup/ --basedir=/usr/local/mysql/

6) Uruchamiamy

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my_backup.cnf

7) Ustawiamy hasło dla "roota" mysql

mysqladmin --port=3300 --socket=/var/lib/mysql_backup/mysql_backup.sock -u root password mojetajnehaslo

8) Łączymy się z serwerem mysql podając z konsoli hasło które podaliśmy u góry ;>

mysql --port=3300  --socket=/var/lib/mysql_backup/mysql_backup.sock -u root -p