Amministrazione di MySQL
L'installazione di MySQL comprende generalmente l'uso di diversi pacchetti (o compilazione delle relative componenti):
mysql-server
- Il server vero e proprio
mysql-client
- Il client a riga di comando
mysql-devel
- Librerie. Da installare solo se si devono compilare software che si appoggiano a MySQL
Il file di configurazione è /etc/my.cnf
.
Il comandi fondamentali sono:
mysqld
- Il server MySQL
mysql
- Il client a riga di comando. Per usarlo bisogna conoscere i principi di SQL.
mysqladmin
- Tool di gestione e amministrazione del sistema
mysqldump
- mysqlhotcopy
- Strumenti per il backup di un database
La gestione dei permessi sui database di MySQL è fondamentale.
Di default esiste l'utente root senza password che da localhost può gestire completamente MySQL. Notare che questo utente NON è l'utente root di sistema, le sue credenziali, come quelle di tutti gli altri utenti di MySQL, sono presente nel database predefinito mysql.
In termini di gestione delle password e degli accessi si consiglia:
- Impostare una password per l'utnete root.
- Impostare login/password diverse per ogni applicativo o sito web che lavora su un singolo database, in modo che questo utente possa lavorare solo su quello specifico db.
- Se da applicativo o interfaccia web si devono solo interrogare dati, bastano i permessi di SELECT, se si devono poterli modificare, dovrebbero bastare permessi di SELECT, UPDATE, INSERT, DELETE. Gli altri permessi servono per modificare la struttura di un database, impostare indici, impostare permessi ecc. e generalmente non è necessario attivarli, salvo quando l'applicazione lo richieda esplicitamente.
- La porta su cui ascolta MySQL (TCP 3306) non dovrebbe mai essere esposta ad Internet, è sufficiente che sia accessibile dall'host su cui gira l'applicativo che usa il DB server (esempio un server web con pagine php).
Esistono diversi metodi per eseguire il baclup dei dati di un database.
Se questi non sono troppi, uno dei più comodi è usare mysqldump:
mysqldump --all-database > backup.sql -u root -p
Il file backup.sql contiene tutte le query necessarie per ristabilire un database:
mysql < backup.sql -u root -p
E' possibile abilitare interessanti funzioni di logging operando su /etc/mycnf
:
log=/var/log/mysql/mysqld.log
- Log generale
log-error=/var/log/mysql/mysqld-error.log
- Errori
log-slow-queries=/var/log/mysql/mysqld-slow.log
- Query lente