Jak uruchomić dwie instancje (izolowane procesy) serwera MySQL na jednej maszynie ?
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