Смекни!
smekni.com

Один пользователь может иметь несколько различных адресов, с которых может производиться подключение, поэтому на данном этапе проверяется значение Host. Если значение поле Host пусто, тогда проводится дополнительная проверка в таблице host. Таблица Host идентична таблице Db, за исключением того, что в ней отсутствует поле User. Столбцы таблицы host аналогичны столбцам таблицы db, разница состоит только в том, что данные из таблицы host при совпадении полей Host и Db имеют более высокий приоритет, и перекрывают ранее установленные значения.

MySQL сервер позволяет устанавливать ограничения на доступ к отдельным таблицам и столбцам таблицы (эта информация хранится в таблицах tables_priv и columns_priv), но увеличение числа проверок приводит к уменьшению производительности.

2. Команды пакета MySQL.

СУБД MySQL поставляется со следующими основными программами и скриптами:

· mysql

· mysqlaccess

· mysqladmin

· mysqld

· mysqldump

· mysqlshow

· isamchk

· isamlog

· safe_mysqld

Еще есть несколько утилит. Они не жизненно важны для MySQL, но обеспечивают полезные дополнительные функциональные возможности.

· comp_err

· msql2mysql

· mysqlbug

· perror

· replace

· which1

· zap

2.1. Основные команды

mysql

Клиентская программа MySQL.

Запуск:

mysql [OPTIONS] database

ОПИСАНИЕ:

Клиентская часть СУБД MySQL названа MySQL. Она обеспечивает интерфейс командной строки с СУБД MySQL, и возможность неинтерактивной пакетной обработки.

Программой mysql поддерживаются следующие опции. Можно использовать или "короткий" одиночный символ или более подробную версию.

-\?, --help Справка.
-d, --debug=[options] Вывести в протокол отладочную информацию. В общем виде 'd:t:o,filename`.
-d, --debug-info Вывести отладочную информацию при выходе из программы.
-e, --exec Выполнить команду и выйти, неявная форма опции --batch.
-f, --force Продолжить, даже если есть SQL ошибка.
-h, --hostname=[hostname] Задает имя сервера, с которым необходимо соединиться.
-P, --port=[port] Порт, для соединения с сервером MySQL.
-p, --password=[password] Пароль пользователя, для соединения с сервером MySQL. Не должно быть пробела между -p и паролем.
-q, --quick Быстрый (небуферизованный вывод), может замедлить сервер, если вывод приостановлен.
-s, --silent Работать молча (подавить вывод).
-u, --user=[user] Имя пользователя для соединения с сервером MySQL. Необязательно, если имя пользователя такое же, как логин. По умолчанию логин используется в качестве имени пользователя.
-v, --verbose Подробный вывод. -v опция может быть удвоена или утроена для более подробного вывода.
-w, --wait Если подключение терпит неудачу, то подождать и повторить попытку.
-B, --batch Выполнить в пакетном режиме. Никаких запросов и никаких ошибок в STDOUT. Устанавливается автоматически при чтении из/записи в канал. Результаты будут выведены в формате с разделением табуляцией. Одна строка результата соответствует одной строке вывода.
-I, --help Справка, эквивалент -\?.
-V, --version Вывести информацию о версии пакета.

mysqlaccess

Проверка прав доступа пользователя.

СИНТАКСИС:

mysqlaccess [host] [user] [db] OPTIONS

ОПИСАНИЕ:

Скрипт mysqlaccess используется, чтобы внести в список привилегии пользователя для конкретной базы данных. Это дает информацию, которая может быть полезна при диагностировании проблем с доступом пользователей к данной базе данных.

Скрипт mysqlaccess поддерживает следующие параметры (можно использовать "короткий" одиночный символ или более подробную версию):

-?, --help Справка.
-v, --version Информация о версии
-u, --user=... Имя пользователя для доступа к базе данных.
-p, --password=... Пароль пользователя, для соединения с сервером MySQL.
-h, --host=... Имя сервера, используется для проверки прав доступа.
-d, --db=... Имя базы данных, используется для проверки прав доступа.
-U, --superuser=... Логин администратора.
-P, --spassword=... Пароль администратора.
-b, --brief Вывести краткие сведения о таблице.
--relnotes Вывести заметки по реализации.
--plan Вывести идеи для будущих реализаций.
--howto Вывести примеры использования `mysqlaccess'
--debug=N Уровень отладки N (0..3)

Необходимо указать по крайней мере имя пользователя и имя базы данных, которые нужно проверить. Если имя сервера не задано, то подразумевается имя 'localhost'.

mysqladmin

Выполняет административные функции.

СИНТАКСИС:

mysqladmin [OPTIONS] command command...

ОПИСАНИЕ:

Программа mysqladmin используется, для управления различными аспектами функционирования СУБД MySQL. Допустимы следующие опции (можно использовать "короткий" одиночный символ или более подробную версию):

-\?, --help Справка.
-d, --debug=[options] Вывести в протокол отладочную информацию. В общем виде 'd:t:o,filename`.
-f, --force Не спрашивать подтверждения при пропуске таблицы.
-h, --host=[hostname] Имя сервера, если не localhost.
-i, --sleep=[seconds] Выполнить команды несколько раз с паузой в [секунд] между ними.
-p, --password[password] Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем.
-u, --user=[user] Имя пользователя. Если не указано, используется текущий логин.
-P, --port=[port] Порт, для соединения с сервером MySQL.
-V, --version Вывести информацию о версии.


Кроме этого программа mysqladmin поддерживает следующие команды:

create [имя базы данных] Создать базу данных.
drop [имя базы данных] Удалить базу данных (вместе со всеми таблицами).
processlist Вывести сведения о работающих потоках MySQL.
reload Перечитать настройки и очистить все кэши.
shutdown Завершить работу СУБД MySQL. Все запущенные MySQL-сессии помечаются как 'killed'. Это означает, что все потоки, которые простаивают в настоящее время, будут закрыты немедленно, а управление потоками будет закрыто, когда они достигнут точек завершения, определенных сервером. Клиенты получат сообщение об ошибке 'mysql server has gone away'.
status Вывести короткое сообщение о статусе сервера.

mysqld

Серверная часть пакета MySQL (mysqld).

СИНТАКСИС:

mysqld [OPTIONS]

ОПИСАНИЕ:

Программа mysqld является ядром СУБД MySQL. Она запускается как демон в системе и принимает подключения из клиентских программ, выполняя запросы и возвращая результаты. Она многопоточная, то есть обработает больше чем один запрос одновременно.

Может наблюдаться спад производительности при использовании опции --log-isam, поскольку при этом очень многое пишется в файл протокола. Непериодические изменения, обновления и удаления могут уменьшить производительность на 5-10%. Производительность может сильно понизиться на обновлениях, требующих большого числа одновременных изменений.

Опция --log-isam может использоваться, для копирования базы данных. ISAM журналы могут стать ОЧЕНЬ большими.

Каждая операция UPDATE, DELETE и INSERT имеет заголовок в 13 байтов дополнительно к команде.

Каждая открытая таблица требует девять байтов плюс длина имени файла таблицы. Это необходимо только для таблиц, которые еще не в кэше таблиц.

Кроме того будут иметься одиннадцать байтов дополнительно для любых команд, которые кэшируют/блокируют таблицы. Эти события обычно вызваны внутренними командами mysql. Наиболее часто, когда используется SELECT.

В большинстве случаев нужно выполнять mysqld из скрипта safe_mysqld .

Программа mysqld поддерживает следующие опции командной строки:

-\?, --help Справка
-#, --debug=[options] Вывести в протокол отладочную информацию. В общем виде 'd:t:o,filename`.
-b, --basedir=[path] Полное имя каталога в который установлен пакет.
-h, --datadir [homedir] Полное имя каталога в котором хранятся базы данных.
-l, --log=[filename] Имя файла протокола запросов к базам данных и подключений.
--log-isam=[filename] Имя файла протокола изменений isam.
-O, --set-variable var=option Установить переменную. См. ниже.
-L, --language=[language] Значение по умолчанию 'english/'. Может быть так же 'swedish/', 'germany/','french/' или 'czech/'. Текущий список можно посмотреть в подкаталог share/mysql каталога, в который установлен MySQL.
-P, --port=[port] Порт для соединения.
-T, --debug-info Вывести отладочную информацию.
--skip-new-routines Не использовать новые возможности этой версии.
--skip-grant-tables Игнорировать таблицы предоставления доступа. Это дает любому ПОЛНЫЙ доступ ко всем таблицам.
--skip-locking Не использовать блокировку системы. Может дать лучшую эффективность, но не должен использоваться вместе с isamchk. ТО ЕСТЬ, сначала остановите сервер.
--skip-name-resolve Эта опция заставит mysqld принимать адреса IP только тех серверов, которые явно указаны в базе данных привилегий mysql. DNS можно более или менее просто хакнуть, а эта опция позволяет избежать ряда проблем, если прикладная программа требует высокого уровня защиты.
--skip-networking Использовать подключения только через интерфейс localhost. Эта опция не будет работать с MIT потоками. Если подключения к базе данных будут только локальные, то использование этой опции защитит от создания удаленных подключений.
--skip-unsafe-select Пропустить возможно опасные оптимизации.
--socket=[socket] Имя сокет-файла для MySQL. Недоступно при использовании версии MySQL, скомпилированной с MIT потоками. ПРИМЕР:
mysqld --socket=/tmp/mysql.sock
-V, --version Вывести информацию о версии.

Если опция -h не определена, mysql будет считать, что основной каталог = "/my/data/sql/mysql".