Salve a tutti,

oggi vorrei scrivere 2 righe sull’esperienza da me fatta sui database mysql di altervista nell’impresa di importarlo sotto linux (distribuzione debian).

Premetto che dell’esport del database di altervista se ne è occupato deg (a cui chiederò delucidazioni quanto prima),e poiché il primo tentativo di esportare il database direttamente da altervista usando il codice del nuked clan è fallito, siamo stati costretti ad intraprendere una strada diversa..

A me è bastato trasferire il file generato da Deg sul ns server, anche se da root sono stato costretto alla modifica del file; ho commentato due righe di codice poichè mysql mi restituiva un errore durante il mio tentativo di import ed in particolare sono state:

CREATE DATABASE `my_warriorteam` DEFAULT CHARACTER SET USE `my_warriorteam`;

è bastato mettere due trattini che precedessero le due righe sopra mensionate per evitare che il programma di import del database andasse in errore…. E’ importante ricordare che MySQL ha un utente root in grado di compiere qualsiasi azione sul server che può accedere senza inserire alcuna password. Una volta assegnata una password a root il nostro sistema potrà dirsi pronto a lavorare.

mysqladmin -u root password nuovapassword

dove nuovapassowrd è la password che volete impostare all’utente root. Qualora abbiate già configurato una password e volete cambiarla dovrete invece usare il comando:

mysqladmin -u root -p vecchiapassword nuovapassword

Adesso da riga di comando digitate:

mysql -u root -p nomedeldatabase < [backup_file].dump

naturalmente al posto di nomedeldatabase potete mettere il vs, e stessa cosa in [backup_file].dump, che naturalmente si riferisce al file che abbiamo scaricato dal sito di altervista; se volessimo fare un backup del database del sito basterebbe scrivere:

mysqldump -u root -p'password' nomedeldatabase > nomedeldatabase.dump

Ricordo inoltre che per creare il database si usa il comando:

mysqladmin -u root -p create nomedeldatabase

mentre per cancellarlo si usa:

mysqladmin -u root -p drop nomedeldatabase

Per accedere all’interfaccia di MySQL sarà ora necessario inserire i dati di autenticazione (user e password) in questo modo:

mysql -u root -p

Il sistema ci chiederà quindi di inserire la password dopodichè avvierà la connessione all’interfaccia di amministrazione del server… Questo quello che vedrete sul vostro monitor:

mysql -u root -p

Un ultimo commento a riguardo del database di altervista: all’interno ci sono numerosi riferimenti al sito originario, quindi in particolare all’indirizzo warriorteam.altervista.org… Per cancellare questi riferimenti occorrerà sostituire la stringa con quella corretta di ‘www.warriorteam.it’ per far si che il sito nuovo non punti più al sito vecchio… sotto linux esiste un comando chiamato ‘sed’ che permette questa sostituzione direttamente all’interno di un qualunque file di testo…

Se volessimo quindi sostituire all’interno dell’archivio di altervista questa stringa basterebbe da riga di comando digitare il seguente codice:

sed s/'warriorteam.altervista.org'/'www.warriorteam.it'/g [backup_file].dump > [nuovo_backup_file].dump

E’ doveroso precisare che creare dei database con utente root può andar bene fin tanto che il server web è il proprio. Ma cosa succederebbe se volessimo hostare il database di un ns amico? Secondo voi sarebbe opportuno comunicargli la nostra password di root? Non credo proprio, quindi non ci rimane che aggiungere un nuovo utente e assegnargli una nuova password. Supponiamo di voler aggiungere un utente chiamato nuovoutente, entriamo in mysql e creiamo un nuovo database chiamato nuovodb; per finire a questo utente “garantiamo” tutti i diritti relativamente al suo nuovo data base. Per fare tutto questo è necessario procedere come segue:

mysql -u root -p
Enter password:
mysql> create database nuovodb;
Query OK, 1 row affected (0.00 sec)
mysql> grant usage on *.* to nuovoutente@localhost identified by 'passwordnuovoutente';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on nuovodb.* to nuovoutente@localhost ;
Query OK, 0 rows affected (0.00 sec)
mysql> exit

Se tutto è andato per il verso giusto dovremmo essere in grado di autenticarci:

mysql -u nuovoutente -p'passwordnuovoutente' nuovodb
Your MySQL connection id is 20
Server version: Ubuntu 8.04 distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Ci vediamo alla prossima puntata! :)

Le mie fonti:
http://www.mrwebmaster.it/mysql/guide/usare-mysql-riga-comando_302.html
http://www.pettinix.org/2008/02/09/cambiare-la-password-di-root-in-mysql/
http://www.debuntu.org/how-to-create-a-mysql-database-and-set-privileges-to-a-user