MySQL
Repair
mysqlcheck -r -u'база_данных' -p'пароль_базы_данных' 'база_данных'
REPAIR TABLE tablename USE_FRM;
Если побилась mysql.user
и мускуль из-за этого не поднимается
for i in $(ls *.MYI | awk -F'.' '{print $1}') ; do myisamchk -r -q $i ;done
Проблемы с переносом баз
ERROR 1118 (42000): Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline
sed -i 's#ENGINE=InnoDB#ENGINE=InnoDB ROW_FORMAT=DYNAMIC#g' dump.sql
ERROR 1416 (22003) at line 801: Cannot get geometry object from data you send to the GEOMETRY field
Где-то есть таблица с пустым геометрическим полем. Заполни его какими-нибудь координатами, 0,0,0 например
ERROR 1449 (HY000) at line 4012: The user specified as a definer ('asdf'@'localhost') does not exist
sed -i 's/\/\*!50013 DEFINER=`asdf`@`localhost` SQL SECURITY DEFINER \*\///g' dump.sql
ERROR 1071 (42000) at line 874: Specified key was too long; max key length is 255 bytes
sed -i 's/tinytext/VARCHAR(255)/g'
SQL
SQL alter/convert
- таблицу и поля в кодировки
ALTER TABLE `DATABASE`.`TABLE` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
- базу, таблицы, поля в кодировки
ALTER DATABASE `DATABASE` DEFAULT CHARSET=utf8 COLLATE utf8_bin;
Use the ALTER DATABASE and ALTER TABLE commands.
ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;Or if you're still on MySQL 5.5.2 or older which didn't support 4-byte UTF-8, use utf8 instead of utf8mb4:
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
клиент
Красивый шелл:
prompt='\u at \h in \d> '