Часто используемые команды для MySQL.
Все систематизировано и сведено в одну заметку с Резервное копирование (backup) баз MySQL, Работа с MySQL из командной строки, Пару способов как получить доступ к СУБД MySQL когда забыл пароль от root’a, Подключения и управления СУБД MySQL. Так же многое было скопировано отсюда Блог о Linux, Python, Vim и другом здоровом образе жизни | proft.me.
Управление пользователями
Список пользователей:
mysql> SELECT User,Host FROM mysql.user;
Список прав у пользователя root@localhost
mysql> SHOW GRANTS FOR root@localhost;
Создание нового пользователя:
mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'secret';
Добавим выбранные привилегии для всех таблиц БД dbname пользователю ‘user’@'localhost’
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX ON dbname.* TO 'user'@'localhost';
Добавим все привилегии для всех таблиц БД dbname пользователю ‘user’@'localhost’
mysql> GRANT ALL PRIVILEGES ON dbname.* TO 'user'@'localhost';
Удаление прав пользователя ‘user’@'localhost’ для БД dbname:
mysql> REVOKE ALL ON dbname.* FROM 'user'@'localhost';
Удалить пользователя ‘user’
mysql> USE mysql;
mysql> DELETE FROM user WHERE User='user';
Перезагрузка привилегий:
mysql> FLUSH PRIVILEGES;
Новый пароль для root:
$ mysqladmin -uroot password 'secret'
Управление базой данных
Создание базы данных:
mysql> CREATE DATABASE dbname COLLATE utf8_general_ci;
Создание базы данных из консоли
$ mysqladmin -u root -p create dbname
Удаления базы данных из консоли:
mysqladmin -u root -p drop dbname
Мониторинг и статистика
Список всех баз данных:
mysql> SHOW DATABASES;
Список всех таблиц в выбранной базе данных:
mysql> SHOW TABLES;
Статистика по работе сервера:
mysql> SHOW GLOBAL STATUS;
так же можно воспользоваться утилитой mytop — мониторинг процессов Mysql в реальном времени
Оптимизация баз данных
При помощи команды mysqlcheck
можно выполнять проверку, оптимизацию и исправление ошибок.
Поверка на ошибки БД dbname:
$ mysqlcheck -p dbname
Восстановление и оптимизация всех БД:
$ mysqlcheck -Aor -p
Описание аргументов
-p – использовать пароль
-A – проверять все базы данных
-r – ремонтировать БД
-o – оптимизировать БД
Скрипт простой оптимизации БД, можно добавить в крон для выполнение раз в сутки:
mysqlcheck --repair --analyze --optimize --all-databases --auto-repair -u root -pSECRET
Дамп (резервная копия)
Дамп базы данных:
$ mysqldump -uroot -p dbname > dump.sql
Дамп выбранных баз:
$ mysqldump -uroot -p -B dbname1 dbname2 > dump.sql
Дамп всех баз
$ mysqldump -uroot -p -A > dump.sql
Дамп только структуры, без данных:
$ mysqldump -uroot -p --no-data dbname > database.sql
Другие опции
—add-drop-table — добавляет команду DROP TABLE перед каждой командой CREATE TABLE
—add-locks — добавляет команду LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы
—no-create-db, -n — не добавлять команду CREATE DATABASE, которая добавляется при использовании параметров —databases и —all-databases
—no-data, -d — дампить только структуру таблиц
—no-create-info, -t — не создавать команду CREATE TABLE
—skip-comments — не выводить комментарии.
—compact — использовать компактный формат
—create-options — добавляет дополнительную информацию о таблице в команду CREATE TABLE: тип, значение AUTO_INCREMENT и т.д. Не нужные опции можно вырезать с помощью sed.
—extended-insert, -e — применение команды INSERT с многострочным синтаксисом (повышает компактность и быстродействие операторов ввода)
—tables — дампить только таблицы из списка, следующего за этим параметром, разделитель — пробел
Применение дампа:
$ mysql -uroot -p dbname1 < dump.sql
Изменение кодировка при импорте с дампа
Определение кодировки файла:
file --mime-encoding dump.sql
Конвертирование из кодировки latin1 в utf8:
mysqldump --add-drop-table -uroot -p dbname | replace CHARSET=latin1 CHARSET=utf8 | iconv -f latin1 -t utf8 | mysql -uroot -p dbname
Восстановление root-пароля
$ service mysqld stop
$ mysqld_safe --skip-grant-tables &
$ mysql
mysql> UPDATE mysql.user SET Password=PASSWORD('secret') WHERE User='root';
mysql> FLUSH PRIVILEGES;
$ service mysqld restart
Читаем еще:
- Резервное копирование (backup) баз MySQL
- Proxy-сервер SQUID web-интерфейс для администрирования SAMS SAMS+REJIK с аунтентификацией по NTLM
- FTP сервер на базе vsftpd и MySQL в Debian (Ubuntu)
- Настройка прокси-сервера Squid +sams+ncsa на Ubuntu 10.04
- Ubuntu 12.10 Quantal Quetzal (Квантовый Кетцаль/Квезаль)
Многое скопировано отсюда http://proft.me/2011/07/19/mysql-poleznye-komandy-i-nastrojki/ .
Мне не жалко, но ссылку можно было указать.
Все исправил, добавил ссылку