Тут будет просто список команд и их краткое описание. Пишу чисто для себя. Бывает часто нужно, но забываю ту или иную комбинацию команд или синтаксис. По мере необходимости список MySQL команд будет пополняться.
Перезагрузить сервер MySQL в старых системах без systemd, например CentOS 5 или 6:
service mysqld restart
Перезагрузить сервер MySQL в новых системах где уже есть systemd, например CentOS 7 и выше:
systemctl restart mysqld или может быть любой форк, напримерsystemctl restart mariadb
Создание базы данных
Для создания базы данных используется команда CREATE DATABASE. Она имеет следующий синтаксис:
CREATE DATABASE [IF NOT EXISTS] имя_базы_даных;
Первая форма CREATE DATABASE имя_базы_даных
пытается создать базу данных, но если такая база данных уже существует, то операция возвратит ошибку.
Вторая форма CREATE DATABASE IF NOT EXISTS имя_базы_даных
пытается создать базу данных, если на сервере отсутствует бд с таким именем.
Установка связи с базой данных
После создания БД с ней производятся различные операции: создание таблиц, добавление и получение данных и т.д. Но чтобы установить производить эти операции, надо установить определенную базу данных в качестве используемой. Для этого применяется оператор USE:
USE Имя_БД;
Удаление базы данных
Для удаления базы данных применяется команда DROP DATABASE, которая имеет следующий синтаксис:
DROP
DATABASE
[IF EXISTS] имя_базы_даных;
DROP DATABASE имя_базы_даных
пытается удалить базу данных, но если такая база данных отсутствует на сервере, то операция возвратит ошибку.Вторая форма DROP DATABASE IF EXISTS имя_базы_даных
пытается удалить базу данных, если на сервере имеется бд с таким именем.
Другие полезные команды для работы с БД
Посмотреть список всех баз на сервере:
mysql> SHOW DATABASES;
Узнать сколько памяти занимают все базы на сервере в подробном списке:
mysql> SELECT table_schema "database_name", sum( data_length + index_length )/1024/1024 "database size in MB" FROM information_schema.TABLES GROUP BY table_schema; +--------------------+---------------------+ | database_name | database size in MB | +--------------------+---------------------+ | information_schema | 0.00781250 | | drive | 2326.64943314 | | drive_430 | 491.87280369 | | drive_440 | 942.96875000 | | drive_global | 0.07113266 | | mysql | 0.61696053 | +--------------------+---------------------+ 6 rows in set (0.01 sec)
Проверить поддержку включенных движков, например InnoDB:
mysql> SHOW ENGINES;
Запустить оптимизацию и восстановление всех таблиц во всех базах данных на всём сервере сразу одной командой:
mysqlcheck --all-databases -o -r -uroot -p
Установить и запустить mysqltuner:
- Поискать в репозитории нашего дистрибутива, если там нет переходим к пункту 2
-
wget http://mysqltuner.pl/
и запустить
perl mysqltuner.pl
Работа с бекапами
Делаем бекап
mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql
Создаём структуру базы без данных
mysqldump --no-data - u USER -pPASSWORD DATABASE > /path/to/file/schema.sql
Если нужно сделать дамп только одной или нескольких таблиц
mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql
Создаём бекап и сразу его архивируем
mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz
Создание бекапа с указанием его дат
mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz`
Заливаем бекап в базу данны
mysql -u USER -pPASSWORD DATABASE < /path/to/dump.sql
Заливаем архив бекапа в базу
gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
или так
zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
вот так работает.
wget —no-check-certificate http://mysqltuner.pl/
Иначе ругается на сертификат сайта.
Это надо в закладки точно добавить!