Instalacja i obsługa MySQL`a z paczki Slackware

Slackware FAQ - czyli baza pytań i odpowiedzi.

Moderatorzy: Moderatorzy, Administratorzy

ODPOWIEDZ
Sajmon
Moderator
Posty: 1144
Rejestracja: 2004-05-22, 23:19
Lokalizacja: Graz
Kontakt:

Instalacja i obsługa MySQL`a z paczki Slackware

Post autor: Sajmon » 2004-09-25, 19:16

[center]Instalacja i obsługa MySQL'a z paczki Slackware[/center]

1) W zależności od wersji Slackware ściągamy pakiet mysql-*.tgz z katalogu slackware/ap i instalujemy za pomocą installpkg.
Następnie wydajemy poniższe polecenia:

Kod: Zaznacz cały

[root@getslack:~]# su - mysql 

[mysql@getslack:~]$ /usr/bin/mysql_install_db 
(w zależności jakie masz wymagania, patrz: ls /etc/my-*, edytuj każdy po koleii i wybierz odpowiedni dla Ciebie konfig)

Kod: Zaznacz cały

[root@getslack:~]# cp /etc/my-small.cnf /etc/my.cnf


Startujemy MySQL:

Kod: Zaznacz cały

[root@getslack:~]# /usr/share/mysql/mysql.server start 
Ustawiamy hasło administratora:

Kod: Zaznacz cały

[root@getslack:~]# /usr/bin/mysqladmin -u root password nowe-hasło
Ułatwia życie, trzeba edytować .my.cnf, odhaszczować linijkę password i wklepać w miejsce your_password hasło roota. Jeśli nie chcemy robić użytku z .my.cnf to trzeba pamiętać o dodaniu --password=twoje_hasło
UWAGA: poniższy krok, wpływa negatywnie na bezpieczeństwo Twojego servera mysql - używaj jeśli wiesz co robisz.

Kod: Zaznacz cały

[root@getslack:~]# cp /etc/my.cnf /root/.my.cnf
Sprawdzamy czy serwer żyje:

Kod: Zaznacz cały

[root@getslack:~]# mysqladmin ping
jak pokaże 'mysqld is alive' to znaczy że wszystko ok.

Tworzymy bazę o nazwie usr_web54, użytkownika 'sajmon' i hasło za pomocą monitora MySQL.

Kod: Zaznacz cały

[root@getslack:/etc/rc.d]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 4.0.21

mysql>  create database usr_web54;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL ON usr_web54.* TO sajmon@localhost IDENTIFIED BY 'moje_haslo';
Query OK, 0 rows affected (0.00 sec

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit;
Bye
Wrzutka bazy lub jej kopii

Kod: Zaznacz cały

[sajmon@getslack:~]$ mysql -u sajmon --password=moje_haslo usr_web54 < 20042509.sql
Zrzut bazy do pliku

Kod: Zaznacz cały

[sajmon@getslack:~]$ mysqldump -u sajmon --password=moje_haslo usr_web54 > 20042509.sql
Wylistowanie aktualnych baz

Kod: Zaznacz cały

mysql> show databases;
Skasowanie bazy

Kod: Zaznacz cały

mysql> drop database nazwa_bazy;
Zmiana zapomnianego hasła roota (zmora chyba kazdego admina)

Kod: Zaznacz cały

[root@getslack:~]# mysqld_safe --skip-grant-tables
( ewentualnie killall mysqld a potem
/usr/share/mysql/mysql.server start )
[root@getslack:~]# mysqladmin -u root flush-privileges password "nowe_hasło"
Trochę programów pomocniczych
mysql - klient, inaczej monitor MySQL
mysqladmin - program pomocniczy do zakładania baz danych, ustawiania/zmiany hasła
mysql_setpermission - zarządzanie prawami dostępu
mysqlaccess - pokazuje prawa dostępu
mysqlcheck - sprawdza, optymuje i reperuje tabele
mysqldump - zrzuca strukturę i zawartość z bazy do np: pliku tekstowego
mysqlimport - importuje zawartość do pliku tekstowego np: oddzielając przecinkiem
myisamcheck - sprawdza i reperuje tabele
mysqlshow - pokazuje strukturę bazy



2.a) Zarządzanie bazą z poziomu phpMyAdmin

Do tego potrzebna jest nam obsługa PHP w Apache. Należy więc zainstalować paczkę Apache oraz PHP:

# swaret --install apache-*.tgz

# swaret --install php-*.tgz


Mamy już zainstalowane to co potrzebne, teraz trzeba uaktywnić obsługę PHP w Apache. Edytujemy /etc/apache/httpd.conf i zmieniamy:

Kod: Zaznacz cały

#Include /etc/apache/mod_php.conf
na

Kod: Zaznacz cały

Include /etc/apache/mod_php.conf
i

Kod: Zaznacz cały

DirectoryIndex index.html
na

Kod: Zaznacz cały

DirectoryIndex index.php index.html
Aby sprawdzić czy PHP działa poprawnie należy stworzyć plik index.php w głównym katalogu servera(domyślnie jest to /var/www/htdocs):

# touch /var/www/htdocs/index.php

i dopisać to do tego pliku:

Kod: Zaznacz cały

<?
   phpinfo()
?>
jeżeli wyświetla się nam strona PHP z wszystkimi informacjami tzn. że PHP działa poprawnie. Należy teraz usunąć ten plik ze względu na bezpieczeństwo. Nastepnym krokiem jest ściągnięcie pliku phpMyAdmin, znajduje się on na stronie http://www.phpmyadmin.net/home_page/downloads.php W momencie pisania tego artykułu najnowsza wersja to 2.6.3-pl1:

# wget http://switch.dl.sourceforge.net/source ... l1.tar.bz2

Teraz rozpakowywujemy to archiwum:

# tar xjf phpMyAdmin-2.6.3-pl1.tar.bz2

i przenosimy go do głownego katalogu servera Apache:

# mv phpMyAdmin-2.6.3-pl1 /var/www/htdocs/phpmyadmin



2.b) Autoryzacja za pomocą cookie

Zaczniemy od edycji pliku /var/www/htdocs/phpmyadmin/config.inc.php, dokładnie to linijki:

Kod: Zaznacz cały

$cfg['PmaAbsoluteUri'] = 'twojadomena.pl/phpmyadmin/'
$cfg['blowfish_secret'] = 'haselko_dla_blowfish';
Teraz musimy zmienić linijke dotyczącą logowania oraz controlusera, ja wybrałem nazwe php, hasło phppass, a autoryzacje cookie:

Kod: Zaznacz cały

$cfg['Servers'][$i]['controluser']   = 'php';           
$cfg['Servers'][$i]['controlpass']   = 'phppass';
$cfg['Servers'][$i]['auth_type']     = 'cookie';
Reszty configu nie trzeba modyfikować. Zajmiemy się teraz stworzeniem użytkownika php, nadaniem mu praw. Logujemy się więc znowu do mysql i wydajemy pięć komend:

Kod: Zaznacz cały

GRANT USAGE ON mysql.* TO 'php'@'localhost' IDENTIFIED BY 'phppass';

GRANT SELECT (
    Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
    File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
    Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
    Execute_priv, Repl_slave_priv, Repl_client_priv
    ) ON mysql.user TO 'php'@'localhost';

GRANT SELECT ON mysql.db TO 'php'@'localhost';

GRANT SELECT ON mysql.host TO 'php'@'localhost';

GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
    ON mysql.tables_priv TO 'php'@'localhost';
Każda linijka zaczynająca się od dużych liter to kolejna komenda. Po każdej wykonanej komendzie powinniście dostać coś takiego:

Kod: Zaznacz cały

Query OK, 0 rows affected (0.00 sec)
Od teraz możemy zalogować się do phpMyAdmin jako user sajmon :)


Autorzy: Sajmon (MySQL), sayetan (phpMyAdmin)
Poprawki: Hannibal

UPDATE(05.08.2006): Poprawione linki. (Podziękowania oSA)

$Id: MySQL z paczki, 2006/18/08 Sajmon Exp $
- usunięcie linii dotyczącej chown (po wykonaniu #su mysql nie trzeba używać chown -R mysql.mysql /var/lib/mysql)
Ostatnio zmieniony 2006-08-23, 23:14 przez Sajmon, łącznie zmieniany 6 razy.

ODPOWIEDZ