PHP/Instalacja/MySQL 5: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Stv (dyskusja | edycje)
m cofnięcie
C64club (dyskusja | edycje)
→‎Instalacja MySQL 5.0: Dodano opis konfiguracji pod linuksem
Linia 7:
==== Kompilacja ze źródeł ====
{{stub}}
 
 
==== Pakiety ====
Także serwer baz danych MySQL można zainstalować z pakietów. Przeważnie jest on już wtedy w pełni gotowy do pracy i wymaga jedynie uruchomienia. Po szczegóły instalacji odsyłamy do instrukcji twojego menedżera pakietów. Jeśli pakiet MySQL nie był zainstalowany domyślnie w Twoim komputerze, być może będziesz musiał sam skonfigurować i uruchomić serwer.
 
==== Konfiguracja i uruchomienie MySQL pod Linuksem ====
Poniższy opis został sprawdzony w dystrybucji Slackware Linux. Pod innymi dystrybucjami może pójść tylko łatwiej.
Żeby przekonać sie, czy serwer Mysql działa, należy spróbować się na niego zalogować.
Jako root:
<source>$ mysql -u root -p</source>
Jeśli mysql zapyta o hasło to znaczy, że działa.
Gdy zaś otrzymamy komunikat w stylu "cannot connect", musimy sprawdzić i poprawić/uzupełnić/dokoczyć konfigurację:
 
1. Czy w katalogu /etc jest plik my.cnf. Jeśli go nie ma, należy skopiować w któryś z gotowych plików my-[small|medium|large|huge].cnf. Przykładowo dla prostej bazy danych na zwykłym dmowym PC do ćwiczeń w zupełności wystarczy model small - nie zużyje wielkich połaci RAM'u.
<source># cp /etc/my-small.cnf /etc/my.cnf</source>
 
Teraz należy utworzyć grupę mysql i użytkownika mysql (niewykluczone, że już istnieje), nadać mu hasło i prawa do katalogów i programów związanych z MySQL.
<source lang="bash"># useradd mysql
# passwd mysql
# groupadd mysql
# chown mysql:mysql /usr/bin/mysql*</source>
 
Nieskonfigurowany MySQL daje nam możliwość łatwego wyboru miejsca, w którym będą przechowywane bazy. Można wybrać standardowe miejsce w /var/lib/mysql, ale byłoby dobrze nie przechowywać ważnych danych na partycji systemowej. Wielu użytkowników ma katalog /home domyślnie przez dystrybucję lub z własnego wyboru umieszcony na innej partycji lub nawet innym dysku. Warto wtedy utworzyć w w /home katalog na bazy, który przeżyje każdą katastrofę łacznie z ponowną instalacją systemu. Obojętnie, które rozwiązanie wybierzesz, dalej będę się posługiwał nazwą /ścieżka/do/bazy.
<source># mkdir /ścieżka/do/bazy (np. /home/mysql_bazy)
# chown -R mysql:mysql /sciezka/do/bazy</source>
 
Następnie należy przygotować katalog roboczy MySQL'a. Należy to zrobić jako użytkownik mysql - inaczej będziemy mieli trudnośi z uruchomieniem i działąniem serwera, prawami dostępu etc.
<source># su - mysql
$ mysql_install_db --datadir="/ścieżka/do/bazy"
$ exit (wyjście do roota)</source>
 
Jeśli instalowaliśmy bazę w innym niż domyślny katalogu, należałoby uwzględnić tę zmianę w skrypcie startowym serwera. W tym celu otwieramy w dowolnym edytorze plik /etc/rc.d/rc.mysqld, odnajdujemy zapis mysqld_safe --datadir=/var/lib coś_tam_dalej i zmieniamy go na mysqld_safe --datadir=/ścieżka/do/bazy coś_tam_dalej. Serwer musi wiedzieć, z jakim katalogiem będzie pracował. W innych dystrybucjach (np. Debian) skrypty startowe umiesczane są w katalogu /etc/init.d/.
Przy okazji zajmiemy sie automatycznym uruchamianiem serwera na przyszłość.
<source># chmod 755 /etc/rc.d/rc.mysqld</source>
 
Teraz już możemy uruchomić serwer:
Edytujemy plik /var/lib/mysql/mysqld.conf (w innych dystrybucjach np. /var/lib/mysql/mysqld.conf)i, jeśli baza będzie służyć tylko nam na naszym komputerze (a tak zakłądamy w podręczniku), należy odkomentować (usunąć znak # z początku) linijkę, w której znajduje sie zapis "skip-networking". W ten sposób odetniemy użytkownikom innych komputerów możliwość zdalnego logowania się do naszej bazy.
<source># su -mysql
$ /etc/rc.d/./rc.mysqld start &</source>
 
Serwer powinien się uruchomić.
 
Jeśli chcemy zwiększyc bezpieczeństwo, możemy użyć skryptu mysql_secure_installation.
Jest on dobrze opisany podczas wykonywania - prawie, że wizard. Pozostawi jedynie konto roota dla bazy, wyrzuci konta anonimowe i bazę test wraz z zawartymi w niej tabelami.
 
=== Instalacja w systemach Windows ===