Kompilacja Custombuild PHP z Percona Server

O Percona Server

Używamy jest Percona Server w wersji 5.5 jako serwera baz danych MySQL rozszerzając tym samym funkcjonalność standardowego serwera MySQL od Oracle o NoSQL-owy sposób komunikacji przez HandlerSocket oraz silnik składowania XtraDB.
Zoptymalizowany do korzystania z dysków SSD dla cache pozwala na znaczne zwiększenie wydajności bazy danych oraz dzięki dodatkowym INFORMATION_SCHEMA nadzorowanie wydajności i obciążenia per użytkownik bazy danych. W czasie restartów po aktualizacji oprogramowania Percona przechowuje indeksy i cache nie pozwalając nawet na tymczasową utratę wydajności.

Instalacja Percona Server

  1. Konfiguracja repozytorium
    Na Debianie Squeeze serwer został zainstalowany z pakietów pochodzących z repozytorium Percona:

    deb http://repo.percona.com/apt/ squeeze main

    Dostępne są również pakiety pod inne wersje systemu – Hardy, Lenny – jak i inne dystrybucje – np. Ubuntu.

  2. Zatrzymanie i wyłączenie obecnego serwera MySQL

    service mysqld stop
    mv /etc/init.d/mysqld /etc/init.d/mysqld-dis

  3. Instalacja pakietów, w tym pakietu deweloperskiego na potrzeby kompilacji PHP

    apt-get install percona-server-server-5.5 libmysqlclient18 libmysqlclient-dev

  4. Podmiana baz danych na pochodzące ze starego serwera MySQL

    service mysql stop
    rm -Rf /var/lib/mysql/*
    echo \”/home/mysql /var/lib/mysql none bind\” >> /etc/fstab
    mount /var/lib/mysql
    service mysql start

  5. Stworzenie lokalnej kopii konfiguracji pakietu custombuild

    cd /usr/local/directadmin/custombuild
    mkdir -p custom/suphp
    cp configure/suphp/configure.php5 custom/suphp/configure.php5

  6. Zmiana przełączników konfiguracji PHP
    /usr/local/directadmin/custombuild/custom/suphp/configure.php5

    \”–with-mysql\” \\
    \”–with-mysqli=/usr/bin/mysql_config\” \\
    \”–with-pdo-mysql=/usr/bin/mysql\” \\

  7. Rekompilacja PHP

    ./build php n

  8. Ustawienie danych debian-sys-maint. Tworzymy w bazie użytkownika z pełnymi uprawnieniami o poświadczeniach z /etc/mysql/debian.cnf

Debian – reset hasła root serwera MySQL

Niestety często przejmując pod opiekę serwer, bądź jedną z usług brakuje części haseł dostępowych do uprzywilejowanych użytkowników. W tym przypadku podobny problem napotkaliśmy z serwerem baz danych MySQL. Poniżej publikujemy procedurę postępowania w tym przypadku w dystrybucji Debian.

Droga na skróty – debian-sys-maint

Zanim przystąpimy do ustawienia nowego hasła użytkownika root, a korzystamy z pochodzącego z repozytorium apt pakietu warto sprawdzić, czy użytkownik systemowy \”debian-sys-maint\” którego poświadczenia znajdziemy w /etc/mysql/debian.cnf nie ma wystarczających uprawnień. W domyślnych ustawieniach jego dane powinny wystarczyć nam do zmiany hasła bądź wykonania niezbędnych czynności administracyjnych

Ostatnia szansa – reset hasła MySQL

Aby dokonać zmiany hasła nie posiadając wystarczających uprawnień musimy mieć dostęp do użytkownika root samego serwera. W kolejnych krokach uruchomimy MySQL w trybie, w którym każdemu połączeniu zostaną przypisane pełne uprawnienia – w tym do zmiany hasła roota.

  1. Zatrzymujemy serwer MySQL:
    service mysql stop
  2. Uruchamiamy serwer MySQL bez sprawdzania poświadczeń oraz bez zdalnych połączeń.
    /usr/sbin/mysqld –basedir=/usr –datadir=/var/lib/mysql –user=mysql –pid-file=/var/run/mysqld/mysqld.pid –skip-external-locking –port=3306 –socket=/var/run/mysqld/mysqld.sock –skip-grant-tables –skip-networking
  3. W drugiej sesji SSH logujemy się na serwer MySQL i dokonujemy zmiany hasła roota, przeładowujemy uprawnienia. Kroki te możemy także wykonać przez phpMyAdmin logując się z dowolnym hasłem.
    # mysql -u root
    mysql> UPDATE mysql.user SET Password=PASSWORD(\’Nowe Hasło\’) WHERE User=\’root\’;
    mysql> FLUSH PRIVILEGES;
    mysql> exit
  4.  W tej samej sesji wyłączamy serwer MySQL (nie reaguje na CTRL+C), uruchamiamy go w normalnym trybie
    # kill $(cat /var/run/mysqld/mysqld.pid)
    # service mysql start
  5. Najważniejszy krok – zapisujemy bezpiecznie nowe hasło. W naszej do generowania, przechowywania i współdzielenia haseł korzystamy z darmowego oprogramowania Keepass