MySQL
MySQL - система управления базами данных. Представляет собой быстрый многопоточный, многопользовательский надежный SQL-сервер баз данных и подходит как для критических по задачам производственных систем с большой нагрузкой, так и для встраивания в программное обеспечение массового распространения.
Содержание |
Управление
Для управлениями им можно использовать как интерфейс командной строки, так и ряд программ на различных языках. Например, Phpmyadmin или MySQL Administrator (в OS Ubuntu Linux пакет именуется как mysql-admin).
Команды mysql
- Посмотреть список процессов
show processlist;
- Посмотреть и проверить привилегии пользователя
SHOW GRANTS FOR user;
- Удалить базу
DROP DATABASE base;
- Проверка, исправление и оптимизация
mysqlcheck [OPTIONS] database [tables] mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...] mysqlcheck [OPTIONS] --all-databases
-A, --all-databases
Проверить все базы данных. Это будет то же самое, что и --databases с выбором всех баз данных.
-1, --all-in-1
Вместо того, чтобы делать один запрос для каждой таблицы, выполнить все запросы в одном запросе отдельно для каждой базы данных. Имена таблиц будут переданы в списке через запятую.
-a, --analyze
Анализировать данные таблицы.
--auto-repair
Если проверяемая таблица разрушена, автоматически исправить ее. Восстановление будет выполнено после того, как все таблицы проверятся.
-#, --debug=...
Файл регистрации отладки. Часто это 'd:t:o,filename'.
--character-sets-dir=...
Каталог, где искать наборы символов.
-c, --check
Проверить таблицу на ошибки.
-C, --check-only-changed
Проверить только те таблицы, которые изменились с последней проверки или не были закрыты правильно.
--compress
Использовать сжатие в протоколе клиент-сервер.
-?, --help
Отобразить сообщение справки.
-B, --databases
Проверять несколько баз данных. Обратите внимание на различие в использовании: в этом случае никакие таблицы не даны. Все параметры будут расценены как имена баз данных.
--default-character-set=...
Заданный по умолчанию набор символов.
-F, --fast
Проверить только те таблицы, которые не были закрыты правильно.
-f, --force
Продолжить, даже если мы получаем sql-ошибку.
-e, --extended
Если Вы используете эту опцию с CHECK TABLE, это гарантирует, что таблица на 100% непротиворечива, но займет длительное время. Если Вы используете эту опцию с REPAIR TABLE, она выполнит расширенный ремонт таблицы, который может занять немало времени и породить много строк мусора в таблице!
-h, --host=...
Связаться с указанным хостом.
-m, --medium-check
Быстрее, чем extended-check, но находит только 99.99% всех ошибок. Режим должен быть достаточно хорошим для большинства случаев.
-o, --optimize
Оптимизировать таблицу.
-p, --password[=...]
Пароль, чтобы использовать при соединении с сервером. Если пароль не задан, он будет запрошен.
-P, --port=...
Номер порта, который надлежит использовать для подключения.
-q, --quick
Если Вы используете эту опцию с CHECK TABLE, это не дает просматривать строки, чтобы проверить неправильные связи. Это самая быстрая проверка. Если Вы используете эту опцию с REPAIR TABLE, ремонту будет подвергнуто только индексное дерево. Это самый быстрый метод ремонта для таблицы.
-r, --repair
Может выправить почти все, что угодно, за исключением уникальных ключей, которые стали не уникальными.
-s, --silent
Выводить только сообщения об ошибках.
-S, --socket=...
Файл сокета, который надо использовать для подключения.
--tables
Отменяет опцию --databases (-B).
-u, --user=#
Пользователь для входа в систему, если не текущий пользователь.
-v, --verbose
Печатать информацию относительно различных стадий.
-V, --version
Вывести информацию о версии.
Создание пользователя, базы и добавление всех привилегий в консоли
Для начала необходимо зайти в MySQL
$ mysql -u root -p
После того, как появится приглашение уже внутри БД (mysql>), вам нужно создать базу с любым вашим названием. Например, база test
mysql> create database test;
Далее вам нужно создать пользователя и задать ему пароль. Например, пользователь user, пароль pass:
mysql> grant usage on *.* to user@localhost identified by ‘pass’;
Будьте внимательны, пользователь будет работать только локально. Если вам нужно подключаться с удаленного хоста, вместо localhost укажите IP адрес хоста.
А теперь дадим все права пользователю user на базу данных test:
mysql> grant all privileges on test.* to user@localhost;
Символ * (звездочка) указан для того, чтобы пользователь получил доступ ко всем таблицам. Если нужно использовать только отдельную таблицу (например, table1), вместо
test.*
укажите
test.table1
Если вам нужно поменять IP хоста
зайдите в БД mysql
use mysql;
Посмотрите, какой IP уже указан пользователю user
select host, user from user;
И укажите другой IP, например, 10.0.0.2:
update user set host=’10.0.0.2’ where user=’user’ and host=’localhost’;
Примените привилегии:
flush privileges;
Тесты для MySQL
См. так же: