LAMP: Linux, Apache, MySQL e PHP: differenze tra le versioni

Riga 206: Riga 206:
=Il Database Server=
=Il Database Server=
==MySQL==
==MySQL==
Passiamo adesso ad installare il server di database MySQL.
<pre># apt-get install mysql-server</pre>
che, oltre al server MySQL, installer per noi anche il client, alcuni tools e le librerie indispensabili.
A questo punto il server MySQL dovrebbe essere installato ed avviato automaticamente. Possiamo controllare usando il solito comando '''ps''' oppure '''/etc/init.d/mysql status'''.
{{Warningbox|MySQL inizialmente accessibile unicamente all' utente '''root''' senza alcuna password.}}
{{box|Nota Bene:|Negli esempi seguenti ho digitando i comandi mysql su righe diverse per renderli pi leggibili, ma nulla vieta di scrivere tutto di seguito sulla medesima linea.}}
La nostra prima preoccupazione dovrebbe essere senz' altro quella di impostare una passowrd per l' utente root. Ecco come fare:
<pre>
mysql> SET PASSWORD
    -> FOR root@localhost
    -> =
    -> PASSWORD('la_tua_password')
    -> ;
Query OK, 0 rows affected (0.08 sec)
mysql> exit
Bye
$
</pre>
Se ora proviamo a loggarci nuovamente, dovremmo vederci negato l' accesso in questo modo:
<pre>
keltik@debby:~$ mysql -u root
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
</pre>
Riproviamo usando la password che abbiamo scelto in precedenza:
<pre>
keltik@debby:~$ mysql -u root -pla_tua_password
Welcome to the MySQL monitor.  Commands end with ; or \g.
</pre>
{{box|Nota Bene:|Lo switch "-p" usato nel comando ''mysql'' prevede che la passowrd venga digitata '''senza spazi tra il -p e la passoword effettiva'''. Non si tratta di un mio errore di battitura!}}
Usare utenti con privilegi alti non mai una buona idea, per cui provvediamo a creare un utente a cui concederemo i privilegi minimi (ma al quale potremo dare privilegi pi alti per database specifici):
<pre>
mysql> GRANT USAGE ON *.*
    -> TO 'utente'@'localhost'
    -> IDENTIFIED BY 'la_tua_password'
    -> ;
Query OK, 0 rows affected (0.02 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.04 sec)
</pre>
Se ora proviamo a loggarci con il nuovo utente, dovremmo riuscire ad autenticarci usando le credenziali specificate con il comando GRANT.
Ora creiamo un database nuovo:
<pre>
mysql> CREATE DATABASE prova;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+----------+
| Database |
+----------+
| mysql    |
| prova    |
| test    |
+----------+
3 rows in set (0.02 sec)
</pre>
ed assegnamo all' utente che abbiamo creato in precedenza piena diritti di amministrazione al database:
<pre>
mysql> GRANT ALL PRIVILEGES
    -> ON prova.*
    -> TO 'utente'@'localhost'
    -> ;
Query OK, 0 rows affected (0.02 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.04 sec)
</pre>
Se ora ci logghiamo con il nostro utente e chiediamo una lista dei database, vedremo unicamente quelli su cui abbiamo privilegi:
<pre>
mysql> show databases;
+----------+
| Database |
+----------+
| prova    |
+----------+
1 row in set (0.00 sec)
</pre>
Ora creiamo una tabella all' interno del database ''prova'', giusto per verificare che sia tutto a posto:
<pre>
mysql> CREATE TABLE tabella (colonna1 VARCHAR(20), colonna2 VARCHAR(20));
Query OK, 0 rows affected (0.42 sec)
mysql> DESCRIBE tabella;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| colonna1 | varchar(20) | YES  |    | NULL    |      |
| colonna2 | varchar(20) | YES  |    | NULL    |      |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.08 sec)
</pre>
Se non abbiamo ottenuto errori passiamo al punto successivo, altrimenti verifichiamo tutti i passaggi precedenti.
==PhpMyAdmin==
==PhpMyAdmin==
=Conclusioni=
=Conclusioni=
806

contributi