Project

General

Profile

MySQLInitConf » History » Version 17

Simone Piccardi, 12/22/2010 12:50 PM

1 17 Simone Piccardi
h1. Configurazione di base per _MySQL_
2 16 Amministratore Truelite
 
3 1 Amministratore Truelite
4 17 Simone Piccardi
La configurazione di base di _MySQL_ eseguita da Debian subito dopo l'installazione del pacchetto consente l'accesso database con l'utente di amministrazione _root_ senza password. Per questo motivo il primo passo da fare, immediatamente dopo l'installazione, è impostare una password per _root_; questo si fa con il comando:
5 1 Amministratore Truelite
6
<pre>
7 16 Amministratore Truelite
/usr/bin/mysqladmin -u root password [[NuovaPassword]]
8 11 Amministratore Truelite
</pre>
9
10 17 Simone Piccardi
Se invece si è persa la password di _root_ del database il precedente comando non funziona in quanto una volta impostata detta password questa diventa necessaria per poterlo utilizzare. Per questo per poterla recuperare (o meglio resettare) occorre seguire la seguente procedura. Il primo passo è fermare il database e farlo ripartire senza meccanismi di controllo di autenticazione, questo si fa con i comandi:
11 1 Amministratore Truelite
12 16 Amministratore Truelite
<pre>
13 1 Amministratore Truelite
/etc/init.d/mysql stop
14
/usr/bin/mysqld_safe --skip-grant-tables --skip-networking &
15 16 Amministratore Truelite
</pre>
16 1 Amministratore Truelite
17
a questo punto ci si potrà collegare al database direttamente con:
18
19 16 Amministratore Truelite
<pre>
20 10 Amministratore Truelite
mysql -u root
21 16 Amministratore Truelite
</pre>
22 1 Amministratore Truelite
23 10 Amministratore Truelite
ottenendo una shell SQL con privilegi di amministrazione; qui si potrà modificare la password impostata per l'utente _root_ tramite le seguenti istruzioni:
24 16 Amministratore Truelite
25 10 Amministratore Truelite
<pre>
26 16 Amministratore Truelite
use mysql;
27 1 Amministratore Truelite
UPDATE user SET Password=PASSWORD("NuovaPassword") WHERE User="root";
28
exit
29 16 Amministratore Truelite
</pre>
30 10 Amministratore Truelite
31 17 Simone Piccardi
fatto questo la passord di _root_ è stata modificata e si potrà fermare il database e riavviarlo con:
32 10 Amministratore Truelite
33
<pre>
34 1 Amministratore Truelite
/etc/init.d/mysql stop
35 16 Amministratore Truelite
/etc/init.d/mysql start
36 8 Amministratore Truelite
</pre>
37 9 Amministratore Truelite
38 17 Simone Piccardi
Dopo di che si potrà verificare che l'accesso è possibile con la nuova password con:
39 1 Amministratore Truelite
40 16 Amministratore Truelite
<pre>
41 1 Amministratore Truelite
server:~# mysql -u root -p
42
Enter password:
43 16 Amministratore Truelite
Welcome to the [[MySQL]] monitor.  Commands end with ; or \g.
44
Your [[MySQL]] connection id is 9 to server version: 4.0.24_Debian-5-log
45 1 Amministratore Truelite
46
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
47
48
mysql> show databases;
49
+-------------+
50
| Database    |
51
+-------------+
52
| mysql       |
53
| test        |
54
+-------------+
55
2 rows in set (0.00 sec)
56
57
mysql> \q
58
Bye
59 16 Amministratore Truelite
server:~#
60 1 Amministratore Truelite
</pre>
61 9 Amministratore Truelite
62 17 Simone Piccardi
Si tenga presente infine che le ultime versioni del pacchetto Debian non richiedono più un intervento manuale per abilitare l'ascolto su @localhost@ in quanto la riga:
63 1 Amministratore Truelite
64 16 Amministratore Truelite
<pre>
65 1 Amministratore Truelite
bind-address            = 127.0.0.1
66 16 Amministratore Truelite
</pre>
67 1 Amministratore Truelite
68 17 Simone Piccardi
è già presente in @/etc/my.cnf@. 
69 3 Amministratore Truelite
70
Fatto questo si potrà passare alla creazione di un proprio database con il comando:
71 16 Amministratore Truelite
<pre>
72 3 Amministratore Truelite
mysqladmin -u root -p create nomedb
73 16 Amministratore Truelite
</pre>
74 3 Amministratore Truelite
che chiederà la precedente password, creando il database, a questo punto ci si potrà collegare al nuovo database con:
75 16 Amministratore Truelite
<pre>
76 3 Amministratore Truelite
mysql -u root -p nomedb
77 16 Amministratore Truelite
</pre>
78 3 Amministratore Truelite
e si potrà dare l'accesso allo stesso ad uno specifico utente con i comandi:
79 16 Amministratore Truelite
<pre>
80 15 Amministratore Truelite
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER, DROP 
81 12 Amministratore Truelite
ON nomedb.* TO 'utentedb'@'localhost' IDENTIFIED BY 'password';
82 16 Amministratore Truelite
</pre>
83 6 Amministratore Truelite
e per garantirsi che questi siano immediatamente disponibili, si dovrà aggiuntere:
84 16 Amministratore Truelite
<pre>
85 6 Amministratore Truelite
FLUSH PRIVILEGES;
86 16 Amministratore Truelite
</pre>
87 5 Amministratore Truelite
88
Nel caso si sia fatto un errore nell'assegnare i permessi e nel creare l'utente, lo si potrà cancellare con i comandi:
89 16 Amministratore Truelite
<pre>
90 1 Amministratore Truelite
use mysql;
91 6 Amministratore Truelite
DELETE FROM user WHERE user="utentedacancellare";
92 16 Amministratore Truelite
</pre>