MySQL

Пронумеровать строки в таблице

set @i=0;
update my_table set num = (select @i:=@i+1);

Дамп БД из командной строки

Linux

сохранить только структуру таблиц:

mysqldump -u UserName -p dbName > ~/dump.txt                # -p - требуется указать пароль (спросит в консоли)
mysqldump -u UserName -pPasswd dbName >~/dump.txt       # тут: -pPasswd - пишется без пробела

такой дамп создастся файл dump.sql, в нём исправить create database <имя базы> и use <имя базы>

вместе с созданием базы и триггерами:

mysqldump --user=$user --password=$password --allow-keywords --triggers --routines --opt --hex-blob --databases $db > dump.sql

создастся файл dump.sql, в нём исправить create database <имя базы> и use <имя базы>

восстановить базу из файла:

mysql < dump.sql

может потребоваться указать логин/пароль:
mysql -u username -p < dump.sql

ERROR 1146 (42S02): Table doesn't exist

Обновил Denwer. MySQL обновился до версии 5.1. Некоторые таблицы в некоторых базах данных переставли быть видны. Т.е. show tables их видит, а show create table их не видит. Странно.

Оказывается, что если таблица имеет engine=innodb, то часть описания базы храниться в файле ibdata1 и его надо было скопировать из старого каталога с базами данных в новый.