Шпаргалка по MYSQL

На заметку пара-тройка нужных команд:

---размер базы---
SELECT table_schema "database_name", sum( data_length + index_length )/1024/1024 "Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema;

---тип движка таблицы---
select engine from information_schema.tables where table_name='имя_таблицы';

---последний столбец---
select * from имя_таблицы ORDER BY имя_столбца DESC LIMIT 1\G;

---структура таблицы---
show columns from имя_таблицы;

---создание реплики---
stop slave;
FLUSH TABLES WITH READ LOCK;
SET GLOBAL read_only = ON;
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO имя_пользователя@адрес_сервера IDENTIFIED BY "оченьсложныйпароль"; - на мастере
CHANGE MASTER TO MASTER_HOST = 'адрес_сервера_мастера', MASTER_USER = 'имя_пользователя', MASTER_PASSWORD = "оченьсложныйпароль", MASTER_CONNECT_RETRY = 5000, MASTER_LOG_FILE = "название_файло_бин-лога", MASTER_LOG_POS = позиция_в_бин-логе; - на реплике
MASTER_LOG_FILE=relay_master_log_file и MASTER_LOG_POS=exec_master_log_pos - если с другой реплики но на одного мастера
SET GLOBAL read_only = OFF;
start slave;

---назначение всех прав/одновременное создание пользователя---
GRANT ALL PRIVILEGES ON имя_базы.имя_таблицы TO имя_пользователя@адрес_сервера IDENTIFIED BY "оченьсложныйпароль";

---дамп базы---
mysqldump  -u имя_пользователя -pоченьсложныйпароль --add-drop-table --add-locks -q -Q --disable-keys --extended-insert --default-character-set=cp1251 имя_базы имя_таблицы(если нужно) -r имя_файла.sql

---список юзеров---
SELECT USER from mysql.user;

---просмотр прав---
SHOW GRANTS FOR 'имя_пользователя'@'адрес_сервера';

---проверка баз типа myisam---
myisamchk --force --fast --update-state --key_buffer_size=18G --sort_buffer_size=2000M --read_buffer_size=4M --write_buffer_size=4M /var/lib/mysql/*/*.MYI

---смена движка таблицы InnoDB --> MYISAM---
sudo find /var/lib/mysql/имя_базы -iname '*.ibd' -printf '%f\n'
mysql> use имя_базы;
mysql> ALTER TABLE имя_таблицы ENGINE = MYISAM;

---вывод таблиц списоком---
mysql -e 'SHOW TABLE STATUS FROM имя_базы'  -s  --skip-column-names | awk '{print $1 " " $7}'

---список процессов---
SHOW FULL PROCESSLIST;

---пропустить ошибку при репликации---
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;

---удалить столбец в таблице---
ALTER TABLE имя_таблицы DROP имя_столбца;

---сортировать по столбцу---
SELECT `имя_столбца` FROM `имя_таблицы` GROUP BY `имя_столбца`;