[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: MySQL 4.0 (sarge) --> MySQL 5.0 (etch) -- Please do "REPAIR TABLE"



04-06-07, Jarek Buczyński <jaro80@gmail.com> napisał(a):
> #!/bin/bash
> PASSWD=TWOJEHASLO
> for i in `mysql -u root -p$PASSWD -e 'show databases'`
>         do
>                 echo $i >> databases.idx
>                 echo "dodalem baze $i do indeksu baz "
>         done
> for c in `cat databases.idx`
>         do
>           for d in `mysql -u root -p$PASSWD -D $c -e 'show tables'`
>             do
>                 mysql -u root -p$PASSWD -D $c -e "repair table $d"
>             done
>         done
>
> kilka linijek a naprawi wszystko

Dzięki to już prawie działa tylko że listuje zbyt dużo "baz", w cudzysłowu
bo dodaje też nazwę tabelki z bazami "Database" i baze "information_schema",
można się pozbyć jakoś tych dwóch wpisów.

W sumie już to rozwiązałem przez edycję pliku i podział skryptu na dwa :),
ale może jest na to sposób w jednym skrypcie :)

w sumie zaden to blad... ale:
najprosciej przefiltrować plik poleceniem... hmm... , najbardziej po
chamsku to ztailować ilosc linii minus jeden


#!/bin/bash
PASSWD=TWOJEHASLO
for i in `mysql -u root -p$PASSWD -e 'show databases'`
        do
                echo $i >> databases.idx.pre
ilosclinii_all=`cat databases.idx.pre | wc -l`
ilosc_linii_naglowka=1
ilosclinii_minus_X=`expr $ilosclinii_all - $ilosc_linii_naglowka`
tail -$ilosclinii_minus_X databases.idx.pre > databases.idx.final
                echo "dodalem baze $i do indeksu baz "
        done
for c in `cat databases.idx.final`
        do
          for d in `mysql -u root -p$PASSWD -D $c -e 'show tables'`
            do
                mysql -u root -p$PASSWD -D $c -e "repair table $d"
            done
        done

pewnie tak zadziala aczkolwiek nie mam czasu przetestowac ;)

Pojawia się jeszcze problem z tabelami InnoDB:

--------------------------------------------------------
The storage engine for the table doesn't support repair
--------------------------------------------------------

Czy ten problem nie dotyczy InnoDB czy trzeba coś innego zrobić?

google

pzdr.

--
Wojciech Ziniewicz
Unix SEX :{look;gawk;find;sed;talk;grep;touch;finger;find;fl
ex;unzip;head;tail; mount;workbone;fsck;yes;gasp;fsck;more;yes;yes;eje
ct;umount;makeclean; zip;split;done;exit:xargs!!;)}

Reply to: