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
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
Kod: Zaznacz cały
[root@getslack:~]# /usr/bin/mysqladmin -u root password nowe-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
Kod: Zaznacz cały
[root@getslack:~]# mysqladmin ping
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
Kod: Zaznacz cały
[sajmon@getslack:~]$ mysql -u sajmon --password=moje_haslo usr_web54 < 20042509.sql
Kod: Zaznacz cały
[sajmon@getslack:~]$ mysqldump -u sajmon --password=moje_haslo usr_web54 > 20042509.sql
Kod: Zaznacz cały
mysql> show databases;
Kod: Zaznacz cały
mysql> drop database nazwa_bazy;
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"
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
Kod: Zaznacz cały
Include /etc/apache/mod_php.conf
Kod: Zaznacz cały
DirectoryIndex index.html
Kod: Zaznacz cały
DirectoryIndex index.php index.html
# touch /var/www/htdocs/index.php
i dopisać to do tego pliku:
Kod: Zaznacz cały
<?
phpinfo()
?>
# 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';
Kod: Zaznacz cały
$cfg['Servers'][$i]['controluser'] = 'php';
$cfg['Servers'][$i]['controlpass'] = 'phppass';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
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';
Kod: Zaznacz cały
Query OK, 0 rows affected (0.00 sec)
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)