Шукати в цьому блозі

четвер, 25 червня 2009 р.

Как быстро поменять тип таблиц в базе MySQL

Собственно я так и не обнаружил как сказать MySQL чтобы он по умолчанию создавал таблицы типа InnoDB. Поэтому не мудрствуя лукаво быстренько "на коленке" накатал следующий скрипт:
MYSQL='mysql -uusername -ppassword database'
echo "show tables" | \
$MYSQL | \
awk 'BEGIN { n=1}
n==0 { printf("ALTER TABLE %s ENGINE=InnoDB;\n", $1) }
n==1 { n=0 }' | \
$MYSQL
Дёшево и сердито! ;)
Ну и конечно-же всё это можно уместить в одну строчку и даже можно попытаться алиас создать.
alias mysqlmoddb='echo "show tables" | $MYSQL | awk '\''BEGIN { n=1} n==0 { printf("ALTER TABLE %s ENGINE=InnoDB;\n", $1) } n==1 { n=0 }'\'' | $MYSQL'
Тогда достаточно будет лишь менять значение переменной MYSQL, примерно так:
$ MYSQL='mysql -uroot mysql'
$ mysqlmoddb

2 коментарі:

sash-kan сказав...

документация говорит, что в секцию [mysqld] файла глобальной конфигурации надо добавить строку
default-storage-engine=innodb
и перезапустить mysql. именно restart, а не reload.

sash-kan сказав...

ссылка потерялась.
вот:
описание параметра и опции