[Linuxtrent] Problema con mysql

  • From: Gelpi Andrea <liste@xxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Mon, 18 Aug 2008 14:20:01 +0200

Salve,
mi trovo improvvisamente con una installazione mysql con alcune tabelle o forse tutte in stato readonly.
mysqldump da questo messaggio:

mysqldump: Couldn't execute '/*!40103 SET TIME_ZONE='+00:00' */': Table 'time_zone_name' is read only (1036)

Al riavvio mysql non parte più con il seguente messaggio:

Aug 18 13:39:43 pic mysqld_safe[9279]: started
Aug 18 13:39:43 pic mysqld[9283]: 080818 13:39:43 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'host' is read only
Aug 18 13:39:43 pic mysqld_safe[9285]: ended

Il tutto capita su una debian etch con mysql 5.0

L'unica cosa "particolare" che ha questa installazione è che la var/lib/mysql è stata spostata alcuni anni fa in /dati/mysql per problemi di spazio.

Guardando su google ho trovato solo una indicazione del tipo disinstalla e reinstalla mysql e poi ricrea i DB e reimporta i dati da un backup.

La soluzione non mi piace perchè non mi aiuta a capire da dove viene il problema.

Se in /etc/mysql/my.cnf ripristino come datadir /var/lib/mysql mysql parte (ovviamente vuoto :-( )

Idee su come ripristinare e come capire che cavolo è successo.

Il giorno in cui mysql ha dato il primo messaggio sono state fatte due cose:

1) su una partizione LVM (differente da quella in cui si trovano i dati) è stato lanciato dd if=/dev/zero of=temporaneo (per riempire di zeri lo spazio libero) 2) è stato inserito uno script di 3 righe che monta un server remoto via smb e ci scrive sopra il dd | gzip della partizione di cui sopra.

Dopo queste due operazioni mysql ha messo le tabelle in read only.

Attualmente mysql non parte a meno di aggiungere --skip-grant-tables.

In questo modo parte ma non è possibile fare nulla visto che tutti i db e le tabelle sono read-only.

Idee, suggerimenti?

--
ing. Andrea Gelpi
***************************************************
La Terra non la abbiamo ereditata dai nostri avi,
ma la abbiamo presa in prestito dai nostri bambini.
***************************************************
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: