Progetto

Generale

Profilo

MySQLInitConf » Cronologia » Versione 12

Amministratore Truelite, 28-07-2008 19:35

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