root.elima.ru
Мертвечина
Статьи и книгиПрограммное обеспечение

Установка и администрирование сервера MySQL.

Инсталляция и первый запуск MySQL.

Установка.

Установка MySQL проходит довольно просто.Для начала нужно скачать и распаковать исходники (как это делать я думаю писать не стоит).Найти их можно на сайте MySQL в разделе Downloads-на любой вкус и для любой ОС,так как MySQL работает практически на всех платформах.

Если вы работаете на Unix-платформе(в частности я буду приводить примеры для Linux,которые немногим отличаются для других Unix-платформ),нужно выполнить следующие шаги:


shell> gunzip mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s mysql-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db
shell> bin/safe_mysqld & 

Распаковывать исходники нужно в каталог /usr/local,так как в настроечных скриптах указывается именно эта директория и создать симлинк для каталога mysql-это делается,потому что в тех же скриптах указывается этот каталог.Нужно подредактировать скрипты mysql_install_db и safe_mysqld применительно к вашей системе,для того,чтобы они начали работать,в частности исправить путь для указания местоположения mysqld и баз данных. Для запуска демона mysqld нужно перейти в каталог /usr/local/mysql/bin и запустить скрипт safe_mysql в фоновом режиме.Если вы не получили никаких сообщений,это уже хорошо-значит,все прошло успешно.Если же появилось сообщение об ошибке,значит что-то не в порядке со скриптами.Можно настроить запуск сервера mysql во время загрузки компьютера.Для этого нужно поместить запуск safe_mysql в один из файлов инициализации системы(они разные в зависимости от версии Linux). Для Linux Slakware в файл /etc/rc.d/rc.local нужно добавить:

/usr/local/mysql/bin/safe_mysqld &

Что касается Windows,поклонником которого я являюсь,то здесь установка проходит практически без проблем.Распаковываете zip-архив,запускаете exe-файл,а дальше все работает само.Устанавливается обычно в каталог c:mysql. В Windows NT MySQL устанавливается в виде службы и можно указать способ запуска-ручной или автоматический (Start-Settings-Control Panel-Services-MySQL-Startup).

Запуск MySQL.

Управление сервером обычно осуществляется из командной строки.Насчет Linux я уже писал,а в Windows 95/98 откройте сеанс DOS и выполните следующие команды:


cd mysqlbin
mysqlbin>mysqld --standalone

Эта команда запустит демон mysql в фоновом режиме.В Windows 95/98 не предусмотрен запуск mysqld в виде службы.Отсутствие сообщений при этом -хороший знак,значит все в порядке.

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

-?, --helpСправка
-b, --basedir=[path] Путь к каталогу в котором установлен mysql
-h, --datadir [homedir] Путь к каталогу,в котором хранятся базы данных.
-l, --log=[filename] Имя журнала транзакций
-L, --language=[language] Язык по умолчанию(обычно English).
-P, --port=[port] Порт для соединения.
--skip-grant-tables Игнорировать таблицы привилегий. Это дает любому ПОЛНЫЙ доступ ко всем таблицам.Не следует предоставлять обычным пользователям разрешений на запуск mysqld.
--skip-name-resolve Позволяет предоставлять доступ только тем хостам,чьи IP-адреса указаны в таблицах привилегий.Ипользуется для более высокого уровня защиты.
--skip-networking Использовать подключения только через интерфейс localhost.
-V, --version Вывести информацию о версии.

Теперь можно попытаться войти в сервер.Для этого используется команда mysql.Изначально существует единственный пользователь,которому предоставляется право входа-root,которая не имеет пароля.Первое,что нужно сделать-войти под именем root и установить для него пароль. Команда mysql может использовать следующие опции:

-?,--helpСправка
-h,--hostname=[hostname]Имя сервера mysql.
-u,--user=[user]Имя пользователя для доступа к mysql.
-p,--password=[password]Пароль пользователя для доступа к mysql.
-P,--port=[port]Порт для соединения с сервером.
-V,--versionИнформация о версии

Примечание.Команды mysqld и mysql имеют еще некоторые опции,но в данный момент они особого интереса не представляют.


mysqlbin>mysql -u root mysql
Welcome to the MySQL monitor.Commands end with ; or g.
Your MySQL connection id is 1 to server version: 3.23.19

Type 'help' for help.

mysql>

Если вы это получили,значит вы успешно вошли в базу данных mysql,которая используется для администрирования сервера.В ней содержатся 5 таблиц,называемых таблицами привилегий.Система привилегий будет подробно рассмотрена в следующих разделах,а пока выполните следующее:


mysql> UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';
mysql>quit
mysqlbin>mysqladmin -u root reload

После установки пароля для root нужно перезагрузить сервер командой mysqladmin reload,чтобы изменения вступили в силу.После этого можно попробовать войти снова:


mysqlbinmysql -u root -p mysql
Enter password:*******
Если вы получили приглашение mysql monitor,значит все правильно работает.Можно начинать настраивать таблицы привилегий,вводить новых пользователей,создавать базы данных и таблицы,то есть делать все то,что называется администрированием.Обо всем этом подробнее далее.

Система привилегий и безопасность в MySQL.

База данных mysql и таблицы привилегий.

Итак,вы успешно вошли в базу данных mysql,которая используется для администрирования сервера.Что же здесь находится?А находятся здесь 5 таблиц,которые ничем не отличаются от других таблий баз данных,за исключением того,что эти таблицы используются для предоставления доступа к базам данных и таблицам в них пользователям.Рассмотрим каждую из них.

Введите следующую команду,которая покажет таблицы в базе данных mysql:


mysql>show tables;
Tables_in_mysql
columns_priv
db
host
tables_priv
user

Кратко рассмотрим функции каждой из таблиц:

Как видно из таблицы,здесь также можно задавать привилегии для доступа к базе данных.Они обычно редко используются без необходимости.Все привилегии доступа нужно задавать в таблице db для каждого пользователя,а в таблице host только перечислить имена хостов.Сервер читает все таблицы,проверяет имя пользователя,пароль,имя хоста,имя базы данных,привилегии.Если в таблице db привилегии select,insert установлены в 'Y',а в таблице host в 'N',то в итоге юзер все равно получит 'Y'.Чтобы не вносить путаницы,лучше назначать привилегии в таблице db.

Эти 3 таблицы являются основными.В новых версиях MySQL,начиная с 3.22 добавлены еще 2 таблицы– tables_priv и columns_priv,которые позволяют задать права доступа к определенной таблице в базе данных и даже к определенной колонке.Они работают подобно таблице db,только ссылаются на таблицы и колонки. Также,начиная с версии 3.22 можно использовать команду GRANT для предоставления доступа к базам данных,таблицам и колонкам таблиц,что избавляет от необходимости вручную модифицировать таблицы db,tables_priv и columns_priv.Команда GRANT будет подробно рассмотрена в следующих разделах.

Привилегии,предоставляемые MySQL.

Привилегия Колонка Где используется
select Select_priv таблицы
insert Insert_priv таблицы
update Update_priv таблицы
delete Delete_priv таблицы
index Index_priv таблицы
alter Alter_priv таблицы
create Create_priv БД,таблицы,индексы
drop Drop_priv БД или таблицы
grant Grant_priv БД или таблицы
references References_priv БД или таблицы
reload Reload_priv администрирование сервера
shutdown Shutdown_priv администрирование сервера
process Process_priv администрирование сервера
file File_priv доступ к файлам на сервере

Select-используется для извлечения информации из таблиц.Select можно также использовать не имея разрешения на доступ к какой-либо БД,например,как калькулятор.

mysql>select 4+3;

Сервер выдаст результат.Пример использования Select:


mysql>select fname,lname,address from customers where city='New York';

Insert-используется для вставки информации в таблицу.Например:


mysql>insert into data2 (first_col,third_col,sixth_col) values ('Bob','Smith','bob@fdrt.net');

Update-позволяет обновлять информацию в таблицах.Например:


mysql>update numbers set field3='129867' where field5='567483';

Delete-используется для удаления информации из таблиц.


mysql>delete from indexes where u_id='2201';

Alter-используется для модификации таблиц:переименования таблицы,добавления колонок,изменения колонок,удаления колонок.Примеры:


mysql>alter table wind rename newwind;
mysql>alter table newwind add master_con varchar(20);
mysql>alter table newwind change retail wholesale varchar(60);
mysql>alter table newwind drop field021;

Create-позволяет создавать базы данных и таблицы в них.Примеры:


mysql>mysqladmin -u john -ptest create mydb //Создает пустую БД.
mysql>use mydb;
Database changed.
create table monitoring (
id int(5) not null auto_increment,
first_name varchar(15) not null,
last_name varchar(20) not null,
address varchar(80) not null,
primary key (id),
key(last_name));

Drop-ипользуется для удаления таблиц и баз данных.

Grant-позволяет пользователю предоставлять другим пользователям привилегии,которыми он сам обладает.Два пользователя с различными привилегиями и привилегий GRANT могут комбинировать свои разрешения.

Index-позволяет пользователю создавать и удалять индексы.

File-пользователь,обладающий этим правом,может выполнять команды LOAD DATA INFILE и SELECT...INTO OUTFILE и может читать и записывать любой файл на сервере MySQL.

Последние 3 привилегии используются для администрирования сервера из команды mysqladmin.

Привилегия Разрешенные команды
reload reload, refresh, flush-privileges, flush-hosts, flush-logs, flush-tables
shutdown shutdown
process processlist, kill

Специальные пользователи MySQL.

В MySQL существуют 3 специальных пользователя:monty,admin и dummy.


mysql>mysql -u root -p mysql
Enter password:******
mysql> INSERT INTO user (Host,User,Password)
VALUES('localhost','dummy','');
или

mysql> GRANT USAGE ON *.* TO dummy@localhost;

Создание и модификация баз данных и таблиц в MySQL.

Создание баз данных.

Создание базы данных в MySQL производится с помощью утилиты mysqladmin.Изначально существует только БД mysql для администратора и БД test,в которую может войти любой пользователь и которая по умолчанию пуста.Приведенный ниже пример иллюстрирует создание базы данных.


mysqlbin>mysqladmin -u root -p create data1
Enter password:******

Database "data1" created.

mysqlbin>

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


mysqlbin>mysql -u root -p data1
Enter password:******

Welcome to MySQL monitor.

Или,находясь в другой базе данных,например в mysql ввести команду:


mysql>use data1

Database changed.

Теперь можно создавать таблицы и вводить информацию.

Типы данных в MySQL.

Прежде чем создавать таблицы,необходимо ознакомиться с тем,какие типы данных поддерживает MySQL.Все они представлены в нижеследующей таблице:

BIGINT [(length)] [UNSIGNED] [ZEROFILL] 8 байт целое
BLOB Двоичный объект (максимальная длина 65535 байт)
CHAR(NUM) Строка фиксированной длины (1 <= NUM <= 255)
DATE Сохраняет информацию о дате. Использует формат "YYYY-MM-DD". Может модифицироваться как строка или число. YYYY-MM-DD ('– ' может быть ЛЮБОЙ не цифрой) YY-MM-DD ('– ' может бытьЛЮБОЙ не цифрой) YYMMDD YYMM Диапазон для этого типа данных от 0000-00-00 до 9999-12-31. В отличие от TIMESTAMP, DATE принимает годы и в виде двух цифр от 0000 до 0099. Это не очень полезно в большинстве случаев. Используйте задание лет четырьмя цифрами в полях типа DATE. Тип DATE имеет длину 4 байта.
DATETIME Объединение типов DATE и TIME. Тип DATETIME идентичен типу TIMESTAMP со следующими исключениями: Когда запись вставляется в таблицу, содержащую поля типа DATETIME, поле DATETIME не изменяется. Диапазон для поля типа DATETIME: '0000-01-01 00:00:00' – '9999-12-31 23:59:59' при использовании в контексте строки, и '00000000000000' – '99991231235959' при использовании в контексте числа. Тип DATETIME имеет длину 8 байт.
DECIMAL (length,dec) Десятичное число с плавающей запятой.
DOUBLE [(length,dec)] Число (4 или 8 байт) двойной точности с максимальной длиной и фиксированном числом десятичных чисел.
FLOAT [(precision)] Номер с плавающей запятой. FLOAT(4) и FLOAT одиночная точность. FLOAT(8) обеспечивает двойную точность.
FLOAT [(length,decimals)] Число одиночной точности с максимальной длиной и фиксированном числом десятичных чисел (4 байта).
INT [(length)] [UNSIGNED] [ZEROFILL] Целое (4 байта).
INTEGER [(length)] [UNSIGNED] [ZEROFILL] Целое число 4 байта
LONGBLOB Двоичный объект с максимальной длиной 2**32 байт.
MEDIUMBLOB Двоичный объект с максимальной длиной 16777216 байт.
MEDIUMINT [(length)] [UNSIGNED] [ZEROFILL] Целое (3 байта).
REAL [(length,dec)] Идентично DOUBLE (8 байт).
SMALLINT [(length)] [UNSIGNED] [ZEROFILL] Целое (2 байта).
TINYBLOB Двоичный объект с максимальной длиной 255 байт.
TINYINT [(length)] [UNSIGNED] [ZEROFILL] Целое число (1 байт).
VARCHAR(NUM) Строка переменной длины (1 <= NUM <= 255)
TIME Хранит информацию о времени. Использует формат "HH:MM:SS". Может использоваться как строка или число. MySQL тип TIME понимает следующий синтаксис. HH:MM:DD HHMMDD HHMM HH Данные типа TIME имеют длину 3 байта.
TIMESTAMP(NUM) Автоматически изменяется при вставке/обновлении. Имеет формат YYMMDDHHMMSS или YYYYMMDDHHMMSS. Вы можете модифицировать поле TIMESTAMP при выполнении INSERT. Это полезно, когда Вы хотите установить произвольную дату/время для записи. В течение модификаций Вы не должны определять значение для вашего поля TIMESTAMP, или определять NULL как значение, для вставки. Иначе вы получите недопустимое значение для этого поля. Когда используете mysql с ODBC и Access Вы должны использовать значение 14 для NUM, поскольку это заставляет MySQL всегда использовать в годах четыре цифры. Значение 12 заставит MySQL использовать в году две цифры. Значение по умолчанию – 14. Обратите внимание, что в случае таблиц с несколькими полями TIMESTAMP только первое такое поле будет модифицироваться автоматически.

Создание и модификация таблиц.

Cоздадим таблицу customers в БД data1:


mysql>use data1

Database changed.
mysql>create table customers (
emp_id int(4) not null auto_increment,
emp_name varchar(10) not null,
emp_lname varchar(15) not null,
address varchar(60) not null,
phone int(10),
primary key(emp_id));

Мы создали пустую таблицу.Вводить данные в нее можно несколькими способами:
а)вручную,используя команду insert into;
б)загрузить данные из текстового файла,что является более предпочтительным,особенно если нужно ввести несколько тысяч записей.Синтаксис этой команды будет описан позже.
в)использовать утилиту mysqlimport также для загрузки данных из текстового файла.

Пример ввода данных вручную:


mysql>insert into customers (emp_id,emp_name,emp_lname,address,phone)
-->values ('1001','John','Walker','New York','1236458794');
или
mysql>insert into customers values ('1001','John','Walker','New York','1236458794');

//работает и то,и то.

Что касается auto_increment в столбце emp_id,это означает,что числовое значение этого столбца будет автоматически увеличиваться на единицу с каждой новой записью.То есть,если мы ввели значение 1001,то следующее будет 1002 и т.д.Значение в такой столбец вводится один раз для задания точки отсчета,а дальше сервер будет сам подставлять нужные значения.

Синтаксис команды LOAD DATA INFILE.

DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]
INTO TABLE tbl_name
[FIELDS
[TERMINATED BY 't']
[OPTIONALLY] ENCLOSED BY '']
[ESCAPED BY '' ]]
[LINES TERMINATED BY 'n']
[IGNORE number LINES]
[(col_name,...)]

Предположим,существует некоторый текстовый файл 123.txt,содержащий 2000 записей,которые нужно внести в таблицу.Нужно создать таблицу,имеющую такую же структуру и такое же число полей,как и файл(а также подходящие типы данных).Предположим,что поля в файле разделены запятыми.Кроме того,файл должен находиться в нужной базе данных. Вводим следующую команду:

LOAD DATA INFILE '123.txt' into table customers fields terminated by ',';

Это все.Данные из файла помещаются в таблицу.

Для модификации таблиц и данных в них используются команды update и alter table. Рассмотрим их действие на примере таблицы customers:

Customers
emp_idemp_nameemp_lnameaddress phone
1001JohnWalkerNew York1235468798
1002BillSmithChicago7650945237
1003JackNicolsonDallas9874325097

Пример действия команды alter table:


mysql>alter table customers add last_accessed date;
mysql>insert into customers (last_accessed) values ('20000512') where
-->emp_id='1003';
mysql>alter table customers rename customers buyers;
mysql>alter table buyers change  phone telephone int(11);

После выполнения этих команд таблица примет следующий вид:

Buyers
emp_idemp_nameemp_lnameaddress telephonelast_accessed
1001JohnWalkerNew York1235468798
1002BillSmithChicago7650945237
1003JackNicolsonDallas987432509720000512

Можете проверить это сами :)

Изменение данных в таблицах производится с помощью команды update.Для примера возьмем ту же таблицу buyers.


mysql>update buyers set address='Seattle' where emp_lname='Smith';

Для модификации таблиц используются также команды Drop и Delete.

Delete-удаляет строку из таблицы.Например,если ввести команду
delete from buyers where emp_id='1002'

будет удалена строка для Bill Smith.

Drop-если используется в Alter table удаляет колонку из таблицы.

Команда Drop также используется для удаления таблиц и баз данных.Пользоваться ею следует осторожно,так как любое удаление необратимо,восстановить данные можно только из резервной копии.

Общие проблемы и их разрешение.

Наиболее распространенной проблемой является сообщение Access denied for user...Если это рядовой пользователь,то с этим может разобраться администратор,если же такое сообщение получает администратор,то это уже проблема. Очень часто при установке пароля для root администратор забывает использовать функцию password(),а просто вводит:

update user set password='mamamia' where user='root';

После этого при попытке войти в базу данных он получает сообщение Access denied.Такой пароль не будет прочитан.Правильно нужно ввести:

update user set password=password('mamamia') where user='root';

Это очень важный шаг и необходимо быть внимательным.Единственный выход при этом в Windows-деинсталлировать сервер и установить по новой,благо еще ничего не настроено.

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

User
Host%.domain.com
Userjerry
Password378b243hk8796
Select_privY
Db
Host%.domain.com
Dbdata1
Userjerry
Insert_privY
Select_privY
Update_privY
Delete_privY
В таблицах содержится информация для юзера jerry.Как можно видеть,jerry может входить по сети с любого компьютера домена domain.com,введя свое имя и пароль.Сервер читает таблицу User,определяет соответствие имени и пароля,затем таблицу Db,в которой указано,к каким базам данных разрешен доступ.Если все правильно,jerry получает доступ к базе данных data1.В этой БД jerry может просматривать информацию в таблицах,помещать туда новые данные,изменять содержимое строк и удалять строки.Если же он захочет создать новую таблицу,он получит сообщение Access denied,поскольку у него нет разрешения создавать таблицы.

Очень важный нюанс:в таблице User для jerry указано разрешение Select,которое является глобальным,то есть справедливо для любой базы данных,даже если он не имеет туда доступа.Например,если jerry введет команду:

select * from data2.authors;

он получит доступ к этой таблице,хотя в таблице Db не назначен доступ к базе data2.Поэтому,без особой необходимости не нужно предоставлять пользователям привилегии в таблице User,а делать это в таблице Db для каждой конкретной базы данных.

Предположим,что jerry временно работает в другом отделе,который находится в другом домене,и когда он пытается получить доступ к базе данных,он получает Access denied,поскольку компьютерам этого домена не разрешен доступ к базе данных.В данном случае нужно поступить следующим образом:очистить поле Host в таблице Db,а в таблицу Host занести следующие данные:

update db set host='' where user='jerry';
insert into host (host,db) values ('%.domain.com','data1');
insert into host (host,db) values ('monster.domain2.com','data1');

Привилегии в таблице Host указывать не нужно.Главное,чтобы данные в таблицах привилегий нигде не дублировались,чтобы не возникало противоречий.Данные для пользователя-имя и пароль,должны назначаться в таблице User,привилегии-в таблице Db,хосты,с которых разрешен доступ,в таблице Host.Если все внимательно вводить,проблем возникать не должно.

В MySQL версий 3.22 и выше работает очень хорошая команда GRANT,с помощью которой можно предоставлять пользователям доступ к базам данных и таблицам без модификации таблиц привилегий вручную.

GRANT select,insert update,delete on data1.telephone to jerry@%.domain.com identified by 'password';

С помощью этой команды можно указывать привилегии на доступ даже к определенным столбцам таблицы:

GRANT select(id,name,address,phone),update(address,phone) on data2.customers to jerry@%.domain.com identified by 'password';

Применение этой команды автоматически помещает данные в таблицы Db,Tables_priv и Column_priv,что избавляет от необходимости их ручной модификации.

Если нужно отнять у пользователя какую-либо привилегию,используйте команду REVOKE.

REVOKE update(address,phone) on data2.customers from jerry@%.domain.com;

Запросы к базе данных и команда Select.

Я не ставлю целью углубляться в изучение языка SQL,об этом вы можете прочитать в любом руководстве по SQL Server,MySQL в основном поддерживает все основные команды стандарта ANSI 92,но команда Select заслуживает того,чтобы посвятить ей отдельную главу. Команда Select используется для запросов к базе данных с целью извлечения из нее информации.Синтаксис команды следующий:

SELECT [STRAIGHT_JOIN] [DISTINCT | ALL] select_expression,...
[FROM tables... [WHERE where_definition] [GROUP BY column,...]
[ORDER BY column [ASC | DESC], ...] HAVING full_where_definition
[LIMIT [offset,] rows] [PROCEDURE procedure_name]]
[INTO OUTFILE 'file_name'... ]

Как видно из вышеприведенного,вместе с командой Select используются ключевые слова,использование которых очень влияет на ответ сервера.Рассмотрим каждое из них.

Ну вот вкратце и все.MySQL поддерживает почти все основные команды SQL Server,так что более подробно о команде SELECT вы можете прочитать в любом учебнике по языку SQL.

Основные утилиты MySQL.

В состав дистрибутива MySQL входят следующие утилиты:

Mysqladmin

Утилита для администрирования сервера.Может использоваться администратором,а также некоторыми пользователями,которым предоставлены определенные привилегии,например-Reload_priv,Shutdown_priv,Process_priv и File_priv.Данная команда может использоваться для создания баз данных,изменения пароля пользователя(администратор может изменить пароль любому пользователю,а рядовой пользователь-только свой собственный),перезагрузки и остановки сервера,просмотра списка процессов,запущенных на сервере. Mysqladmin поддерживает следующие команды:

Create [database_name]Создает базу данных
Drop [database_name]Удаляет базу данных и все таблицы в ней
ReloadПерезагружает сервер
ShutdownОстанавливает работу сервера MySQL
ProcesslistВыводит список процессов на сервере
StatusВыводит сообщение о статусе сервера

Пример использования mysqladmin для изменения пароля:

mysqladmin -u bob password srawberry

Следует заметить,что в случае использования mysqladmin для установки пароля,не требуется использование функции password().Mysqladmin сам заботится о шифровании пароля.

Mysqlaccess

Используется для проверки привилегий пользователя для доступа к конкретной базе данных. Общий синтаксис:

mysqlaccess [host] [user] [db] опции

Полезная утилита для проверки прав доступа пользователя,если он получает сообщение Access denied,при попытке соединиться с базой данных.

Опции:

-?, --helpСправка
-u, --user=[username]Имя пользователя
-p, --password=[password]Пароль пользователя
-h, --host=[hostname]Имя хоста для проверки прав доступа
-d, --db=[dbname]Имя базы данных для проверки прав доступа
-U, --superuser=[susername]Имя суперпользователя(root)
-P, --spassword=[spassword]Пароль администратора
-b, --briefВыводит краткие сведения о таблице

Mysqlshow

Используется,чтобы показать,с какими базами данных работает сервер,какие таблицы содержит каждая БД и какие колонки есть в каждой таблице.Синтаксис:

mysqlshow [опции] [database [table [field]]]

Mysqlshow может использовать следующие параметры:

-?, --helpСправка
-h, --host=[hostname]Имя сервера
-k, --keyПоказать ключи для таблицы
-p, --password=[password]Пароль пользователя
-u, --user=[username]Имя пользователя
-p, --port=[port]Порт для связи
-V, --versionВывести информацию о версии

Если ввести mysqlshow без аргументов,будут показаны все базы данных,если указать имя БД, будут показаны все таблицы в ней.

Mysqldump

Используется для для создания дампа содержания базы данных (резервной копии).Можно записать содержимое базы данных в файл.Синтаксис:

mysqldump [опции] [database [table [field]]]

Mysqldump может использовать следующие параметры:

-?, --helpСправка
-h, --host=[hostname]Имя сервера
-p, --password=[password]Пароль пользователя
=d, --no-dataЭкспорт только схемы информации без данных
-u, --user=[username]Имя пользователя
-c, --completeВывести полные инструкции Insert
-q, --quickБыстрый вывод без создания буфера
-p, --port=[port]Порт для связи
-V, --versionВывести информацию о версии

Isamchk

С помощью этой утилиты можно осуществлять восстановление таблиц,управление таблицами и сбор статистики.Синтаксис:

isamchk [-?adeiqrsvwzIV] [-k #] [-O xxxx=size] [-Si] [-Sr #] [-O keybuffer=#]
[-O readbuffer=#] [-O writebuffer=#] [-O sort key blocks=#] files

Isamchk используется для проверки непротиворечивости таблиц и устранения проблем,которые это может вызвать. Если пользователь часто удаляет и добавляет данные в таблицах,эта утилита будет очень полезной. Isamchk может использовать следующие опции:

-?, --helpСправка
-aАнализ.Оптимизирует размещение таблиц.
-dИнформация о таблице
-eРасширенная проверка
-iДополнительная информация
-rРемонт таблицы.Если таблица содержит неиспользуемые индексы,они будут удалены.
-sРежим молчания
-uРаспаковывает сжатый файл
-vПодробный вывод
-wОжидать,если таблица заблокирована.
-IСправка
-SСортировать записи по ключу #.Оптимизирует размещение данных в таблице.

При использовании опции -r нужно остановить mysqld.Перед началом работы нужно перейти в каталог,где находится таблица,нуждающаяся в проверке или ремонте.

Isamlog

Журнал транзакций,используется с опцией --log-isam=file_name демона mysqld.В файл записываются все изменения,происходящие в базе данных.Может использоваться для восстановления базы данных. Если есть резервная копия базы данных до того,как был сгенерирован isam-журнал,то информацию можно легко восстановить. Если нет копии,то нужно использовать все журналы с начала работы базы данных.

Safe_mysqld

Cкрипт для запуска демона mysqld в Unix-версиях.Выполняется при начальной загрузке системы. Для автоматического запуска нужно добавить запись в один из файлов инициализации системы.