May 28th, 2007

(no subject)

Если человек идиот, то это надолго! © "Бриллиантовая рука"

Вчера непонятно с чего решил обновить прошивку у своего Zyxel 660HTW. А то чего-то линукс по wifi через раз стал пускать. Обновил. За всё оставшееся воскресенье линукс по wifi больше инету не увидел. Не пускает и всё тут ...

wpa_supplicant попросту не может прицепиться к точке. Перепробывал всё и даже в бубен бил, но не помогло. Остался последний шанс - зарезетить полностью точку и настроить всё с нуля ...

Несмотря на кондиционер на работе, думать о чем-нибудь полезном совершенно не охота ...

(no subject)

Родился баобабом и будешь баобабом тыщу лет, пока помрешь! © В.Высоцкий
Дурная голова рукам покоя не дает © Народная мудрость
$1 за удар. А $99 - за знание, куда ударить! © Анекдот/байка

Полез я как-то руками в mysql ... и сказал update table set column=value; А через миллисекунду после нажатия кнопки Enter я громко и отчетливо сказал много нехороших и непечатных слов, перемежаемых местными идиоматическими выражениями, описывающими мои пристрастия к копанию в базе данных руками. Ибо забыл поставить where id=value;

И как не трудно догадаться, вся таблица приобрела совершенно восхитительное и однообразное значение. Сразу стал думать чего делать. Это не транзакция - не откатишь. Бекапы как всегда вчерашние и терять наработки за день не охота.

Но чукча - он умный. У него mysql реплицируется. А добрый mysql все изменения в базе пишет в спец-файлики, который потом раздает подчиненным серверам. А в тех спец-файликах все изменеия в виде обычных sql комманд. Ну и что, что файлик бинарный ...

Выдираем все sql, относящиеся к убитой таблице в отдельный файл

cd /var/lib/mysql
strings mysql-data*|grep table > file.sql

Добавляем в начало команду использовать временную таблицу и к каждой строчке в конце ";", что бы соответствовать sql

echo "use table_temp;" > file1.sql
cat file.sql |while read line; do echo ${line}";" >> file1.sql; done;

И проверяем несколько раз
mysql -u root -p < file1.sql

Из-за особенностей работы strings в концах некоторых строчек появляется небольшой символьный мусор - его и убираем.

После уборки мусора, меняем первую строчку на use table; и перезаливаем заново таблицу ...

Как это ... Вуаля! 15 минут работы и жисть спасена :)