Instalacja MySQL i phpMySQL – część 2

Przy bardziej złożonych stronach/projektach zapewne szybko się okaże, że przyda nam się też serwer baz danych…

MySQL

Przy bardziej złożonych stronach/projektach zapewne szybko się okaże, że przyda nam się też serwer baz danych…

Instalacja serwera MySQL

sudo apt-get install mysql-server mysql-client php5-mysql libapache2-mod-auth-mysql -y

W przypadku błędu (np. pakietu libapache2-mod-auth-mysql nie ma już w repozytoriach Raspbian Jessie) można spróbować:

sudo aptitude install mysql-server mysql-client php5-mysql -y
raspberry-pi_www_05_sql01

Podczas instalacji trzeba podać hasło do konta „root” dla bazy danych (MySQL, nie mylić kontem do systemu):

raspberry-pi_www_05_sql02

Gdy instalacja przebiegnie pomyślnie powinniście zobaczyć mniej więcej coś takiego:

raspberry-pi_www_05_sql03

I to właściwie wszystko jeśli chodzi o sam serwer MySQL, choć warto zainstalować teraz coś, co znacznie uprości nam zarządzanie bazami danych:

phpMyAdmin

Standardowo zaczynamy od instalacji:

sudo apt-get install phpmyadmin -y
raspberry-pi_www_06_phpmyadmin01

Gdy pojawi się ekran z wyborem rodzaju serwera WWW wybieramy: Apache2

raspberry-pi_www_06_phpmyadmin02

Na następnym ekranie by nie komplikować wybieramy „Yes”, i korzystamy z automatycznej konfiguracji:

raspberry-pi_www_06_phpmyadmin03

W kolejnym etapie musimy wpisać hasło do konta „root” dla bazy MySQL – te które utworzyliśmy podczas instalacji MySQL:

raspberry-pi_www_06_phpmyadmin04

Przy opcji:

MySQL aplication password for phpmyadmin:

możemy skorzystać z wygenerowania losowego hasła, w tym celu naciskamy tylko [enter]

raspberry-pi_www_06_phpmyadmin05

Jeśli wszystko poszło OK, to zapewne na koniec zobaczycie ekran podobny do tego:

raspberry-pi_www_06_phpmyadmin06

By sprawdzić czy wszystko działa ponownie wpisujemy w oknie przeglądarki adres Raspberry Pi (naszego serwera WWW), z tym że za adresem dodajemy:

/phpmyadmin

Czyli:

http://adres_ip_raspberry_pi/phpmyadmin
  • Login: root
  • Hasło: podane podczas instalacji (wyżej)

Połączenie dla użytkownika kontrolnego zdefiniowanego w pliku konfiguracyjnym nie powiodło się.

Gdy w phpMyAdmin pojawi się Wam taki komunikat:

połączenie dla użytkownika kontrolnego zdefiniowanego w pliku konfiguracyjnym nie powiodło się

oznacza to, że coś poszło nie tak – i trzeba ręcznie skorygować „dane dostępowe”.

W tym celu należy przejść do edycji pliku:

sudo nano /etc/phpmyadmin/config-db.php

i sprawdzić m.in. te linijki:

$dbuser='phpmyadmin';
$dbpass='hasło';

Hasło które znajduje się w zmiennej $dbpass jest hasłem za pomocą którego phpMyAdmin próbuje się połączyć z bazą danych dla swoich celów – zmieniamy na prawidłowe…

Ew. jeśli nie znacie – a jest to możliwe, zwłaszcza gdy wybraliście losowe podczas instalacji – należy zalogować się do phpMyAdmin (użytkownik „root”) i ustawić hasło dla użytkownika „phpmyadmin” takie jak w tym pliku.

„Ręczna” instalacja phpMyAdmin

Jeśli ktoś chciałby ręcznie zainstalować phpMyAdmin (bo np. chce inną wersję) również nie jest to trudne, i sprowadza się do kilku prostych kroków. I muszę przyznać, że od jakiegoś czasu jest to sposób z którego coraz częściej korzystam…

Pobrania najnowszą paczkę ze strony projektu, rozpakowujemy pliki i wrzucamy je np. do katalogu „phpmyadmin” webserwera, np.:

/var/www/public_html/phpmyadmin

Do tego warto doinstalować jeszcze kilka paczek PHP – jakby ich nie było:

sudo apt-get install php5-mcrypt php-mbstring php5-mbstring php-gettext

sudo phpenmod mcrypt
sudo phpenmod mbstring
sudo systemctl restart php5-fpm

Po zalogowaniu do phpMyAdmin może pojawić się błąd/komunikat:

Plik konfiguracyjny wymaga teraz tajnej frazy kodującej (blowfish_secret).

By rozwiązać problem wystarczy utworzyć plik konfiguracyjny – można skorzystać z przykładowego:

sudo cp /var/www/public_html/phpmyadmin/config.sample.inc.php /var/www/public_html/phpmyadmin/config.inc.php

Otwieramy go:

sudo nano /var/www/public_html/phpmyadmin/config.inc.php

I zmienić w nim linijkę:

$cfg['blowfish_secret'] = ''; 

Np. na:

$cfg['blowfish_secret'] = '01234567890123456789012345678901';

Zamiast „01234567890123456789012345678901” należy wstawić jakieś 32-znakowe (!) hasło.

Kolejny dość popularny błąd:

Program phpMyAdmin nie ma w pełni skonfigurowanej przestrzeni do przechowywania danych, niektóre rozszerzone funkcje zostały wyłączone. Aby dowiedzieć się dlaczego kliknij tutaj. Lub, alternatywnie, przejdź do zakładki ‚Operacje’, w dowolnej bazie danych, aby tam to skonfigurować.

Wystarczy przez phpMyAdmin zaimportować plik:

/var/www/public_html/phpmyadmin/sql/create_tables.sql

Jeśli pojawi się błąd podczas tej operacji, to z poziomu konsoli:

mysql -u root -p

mysql> DROP DATABASE phpmyadmin;
mysql> CREATE DATABASE phpmyadmin;
mysql> exit

mysql -u root -p phpmyadmin < /var/www/public_html/phpmyadmin/sql/create_tables.sql

Po tej operacji i ponownym zalogowaniu do phpMyAdmin wszystko powinno być już OK (pamiętajcie tylko, że użytkownik „root” do MySQL to nie to samo co „root” do systemu).

phpMyAdmin: użytkownicy i bazy

Sama baza to jedno, ale warto jeszcze wiedzieć, jak dodać użytkownika i bazę danych…

Logujemy się do phpMyAdmin:

http://raspberrypi/phpmyadmin/

Nowy użytkownik:

W menu głównym phpMyAdmin wybieramy:

  • Uprawnienia > Dodaj nowego użytkownika
raspberry-pi_www_06_phpmyadmin08_db01
  • Nazwa użytkownika: jak sama nazwa wskazuje, nazwa nowego użytkownika bazy, np. patryk
  • Host: W większości przypadków możemy wybrać „Host lokalny” (localhost)
  • Hasło: Również chyba wiadomo, co tu trzeba wpisać 🙂
raspberry-pi_www_06_phpmyadmin08_db02

Warto jeszcze zaznaczyć opcję:

  • Baza danych dla użytkownika:
    Przyznaj wszystkie uprawienia do baz danych o nazwach pasujących do maski (nazwaużytkownika_%)

lub:

  • Utwórz bazę danych z taką samą nazwą i przyznaj wszystkie uprawnienia

Wtedy wystarczy stworzyć bazę danych wg wzoru:

  • nazwaużytkownika_nazwabazy (wariant 1)
  • nazwaużytkownika (wariant 2)

by użytkownik miał do niej automatycznie odpowiednie uprawnienia…

Tworzenie baza danych

W menu głównym phpMyAdmin wybieramy „Bazy danych” i tam tworzymy nową bazę danych:

raspberry-pi_www_06_phpmyadmin08_db03

Zobacz jak dodatkowo zabezpieczyć dostęp do phpMyAdmin za pomocą pliku .htaccess

Podsumowanie

Oczywiście możecie skorzystać z innych serwerów niż Apache, z innej bazy niż MySQL – ale wybrałem akurat taki „pakiet”, bo chyba najczęściej się go używa, a zarazem chyba najmniej problemów sprawia przy obsłudze i konfiguracji…