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
Podczas instalacji trzeba podać hasło do konta „root” dla bazy danych (MySQL, nie mylić kontem do systemu):
Gdy instalacja przebiegnie pomyślnie powinniście zobaczyć mniej więcej coś takiego:
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
Gdy pojawi się ekran z wyborem rodzaju serwera WWW wybieramy: Apache2
Na następnym ekranie by nie komplikować wybieramy „Yes”, i korzystamy z automatycznej konfiguracji:
W kolejnym etapie musimy wpisać hasło do konta „root” dla bazy MySQL – te które utworzyliśmy podczas instalacji MySQL:
Przy opcji:
MySQL aplication password for phpmyadmin:
możemy skorzystać z wygenerowania losowego hasła, w tym celu naciskamy tylko [enter]
Jeśli wszystko poszło OK, to zapewne na koniec zobaczycie ekran podobny do tego:
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
- 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ć 🙂
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:
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…