четверг, 4 августа 2011 г.

Кодировочка в крокозяблочках

Столкнулся сегодня с крокозяблами в базе Centreon, который ставил не я, залез в мускуль, а там кодировочка у базы latin1. Замечательно просто. Потребовалось сменить кодировку по-умолчанию, ну и существующие кодировки у всех таблиц в базе.
Если с первой задачей было покончено быстро путём

ALTER DATABASE `centreon2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

то для второй нашел в инете запрос, который генерирует скриптик для выполнения этих операций со всеми таблицами в базе. Ограничение - работает только с 5-м мускулем.

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as sqlcode
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'db_name'
ORDER BY 1;

db_name замените на имя своей базы данных (схемы), а utf8 на нужную вам кодировку.

среда, 3 августа 2011 г.

Гроза и роутер

Грозы в этом году просто жуть. И если в былые годы это явление природы как-то благосклонно относилось к моей бытовой технике, то в этот год решило напомнить о себе, чуть-чуть подпалив мой новый роутер TP-LINK WR1043N
"Чуть-чуть" - это как раз, чтобы WAN-овский порт заводился только на 10 мегабитах.
Меня это в корне не устроило, и я решил посмотреть, можно ли это починить.
Вскрыв корпус, я обнаружил, что на WAN-овский порт стоит отдельный трансформатор, что, в перспективе, упрощает процесс восстановления полной работоспособности роутера. Но, поскольку у меня нет в наличии донора, я решил действовать программными способами, а именно - вспомнив, что где-то перед глазами у меня промелькивала информация о возможности залить в данный роутер прошивку от DD-WRT, я приступил к процессу.
Почему именно DD-WRT, а не OpenWRT? Просто пока нету опыта работы с OpenWRT, а DD-WRT я заливал на такую кучу устройств, что страшно подумать. Вобщем, процесс перепрошивки несложен, но как заставить главный чип использовать как WAN-порт не собственно WAN-порт, а порт 4 из LAN? Попытки сделать это через модификацию nvram ни к чему не привели, и я стал рыть дальше. И на сайте OpenWRT я натолкнулся на информацию, что в OpenWRT есть утилитка swconfig, которая на низком уровне позволяет управлять головным чипсетом. Быстро открыв telnet-ом консоль своего роутера, я обнаружил, что и в DD-WRT есть эта утилита. Дальнейшее было проще пареной репы. Всего две команды:

swconfig dev rtl8366rb vlan 1 set ports "0 1 2 3 5t"
swconfig dev rtl8366rb vlan 2 set ports "4 5t"

привели роутер именно в ту конфигурацию, которую я и хотел.
Прописав их в Startup-скрипт, и перезагрузив роутер, я убедился, что назначение портов работает правильно и после перезагрузки.