- Глава 4. Администрирование баз данных
- Клиентские сценарии и утилиты MySQL
- 4.8.1. Обзор клиентских сценариев и утилит
- 4.8.2. mysql, Утилита командной строки
- 4.8.3. mysqladmin, Администрирование MySQL-сервера.
- 4.8.4. Использование mysqlcheck для сопровождения и аварийного восстановления таблиц.
- 4.8.5. mysqldump, Получение дампов данных и структуры таблицы
- 4.8.6. mysqlhotcopy, Копирование баз данных и таблиц MySQL
- 4.8.7. mysqlimport, импорт данных из текстовых файлов
- 4.8.8. mysqlshow, просмотр баз данных, таблиц и столбцов
- 4.8.9. mysql_config, Получение опций компиляции для компиляции клиентских программ
- 4.8.10. perror, разъяснение кодов ошибок
- 4.8.11. Как запускать SQL-команды из текстового файла
- Creating a New User
- Prerequisites
Глава 4. Администрирование баз данных
- 4.1. Конфигурирование MySQL
- 4.1.1. Параметры командной строки
mysqld
- 4.1.2. Файлы параметров
my.cnf
- 4.1.3. Установка нескольких серверов на один
компьютер - 4.1.4. Запуск нескольких серверов MySQL на одном
компьютере
- 4.1.1. Параметры командной строки
- 4.2. Общие проблемы безопасности и система
привилегий доступа MySQL - 4.2.1. Общие принципы обеспечения
безопасности - 4.2.2. Как обезопасить MySQL от хакеров
- 4.2.3. Опции запуска
mysqld
,
относящиеся к безопасности - 4.2.4. Вопросы безопасности, относящиеся к
команде LOAD DATA LOCAL - 4.2.5. Функции, выполняемые системой
привилегий - 4.2.6. Как работает система привилегий
- 4.2.7. Привилегии, предоставляемые MySQL
- 4.2.8. Соединение с сервером MySQL
- 4.2.9. Управление доступом, этап 1:
верификация подсоединения - 4.2.10. Управление доступом, этап 2:
верификация запросов - 4.2.11. Причины появления ошибок
Access
(‘в доступе отказано’)
denied
- 4.2.1. Общие принципы обеспечения
- 4.3. Управление учетными записями
пользователей MySQL - 4.3.1. Синтаксис команд
GRANT
и
REVOKE
- 4.3.2. Имена пользователей MySQL и пароли
- 4.3.3. Когда изменения в привилегиях вступают
в силу - 4.3.4. Задание изначальных привилегий MySQL
- 4.3.5. Добавление новых пользователей в MySQL
- 4.3.6. Ограничение ресурсов пользователя
- 4.3.7. Задание паролей
- 4.3.8. Обеспечение безопасности своего
пароля - 4.3.9. Использование безопасных соединений
- 4.3.1. Синтаксис команд
- 4.4. Предотвращение катастроф и
восстановление - 4.4.1. Резервное копирование баз данных
- 4.4.2. Синтаксис
BACKUP TABLE
- 4.4.3. Синтаксис
RESTORE TABLE
- 4.4.4. Синтаксис
CHECK TABLE
- 4.4.5. Синтаксис
REPAIR TABLE
- 4.4.6. Использование
myisamchk
для
профилактики таблиц и
послеаварийного - 4.4.7. Настройка режима профилактики таблиц
- 4.4.8. Получение информации о таблице
- 4.5. Справочник по языку администрирования
баз данных - 4.5.1. Синтаксис команды
OPTIMIZE TABLE
- 4.5.2. Синтаксис команды
ANALYZE TABLE
- 4.5.3. Синтаксис команды
FLUSH
- 4.5.4. Синтаксис команды
RESET
- 4.5.5. Синтаксис команды
KILL
- 4.5.6. Синтаксис команды
SHOW
- 4.5.1. Синтаксис команды
- 4.6. Локализация MySQL и использование
национальных алфавитов - 4.6.1. Набор символов, применяющийся для
записи данных и сортировки - 4.6.2. Сообщения об ошибках на языках,
отличных от английского - 4.6.3. Добавление набора символов
- 4.6.4. Массивы определения символов
- 4.6.5. Поддержка упорядочивания строк
- 4.6.6. Поддержка многобайтовых символов
- 4.6.7. Проблемы с наборами символов
- 4.6.1. Набор символов, применяющийся для
- 4.7. Серверные сценарии и утилиты MySQL
- 4.7.1. Обзор серверных сценариев и утилит
- 4.7.2.
safe_mysqld
, оболочка
mysqld
- 4.7.3.
Mysqld_multi
, программа для
управления множеством серверов MySQL - 4.7.4.
myisampack
, MySQL-генератор сжатых
таблиц (только для чтения) - 4.7.5.
mysqld-max
, расширенный сервер
mysqld
- 4.8. Клиентские сценарии и утилиты MySQL
- 4.8.1. Обзор клиентских сценариев и утилит
- 4.8.2.
mysql
, Утилита командной строки - 4.8.4. Использование
mysqlcheck
для
сопровождения и аварийного
восстановления таблиц. - 4.8.5.
mysqldump
, Получение дампов
данных и структуры таблицы - 4.8.6.
mysqlhotcopy
, Копирование баз
данных и таблиц MySQL - 4.8.7.
mysqlimport
, импорт данных из
текстовых файлов - 4.8.8.
mysqlshow
, просмотр баз данных,
таблиц и столбцов - 4.8.9.
mysql_config
, Получение опций
компиляции для компиляции
клиентских программ - 4.8.10.
perror
, разъяснение кодов
ошибок - 4.8.11. Как запускать SQL-команды из текстового
файла
- 4.9. Файлы журналов MySQL
- 4.9.1. Журнал ошибок
- 4.9.2. Общий журнал запросов
- 4.9.3. Журнал обновлений (update)
- 4.9.4. Бинарный журнал обновлений
- 4.9.5. Журнал медленных запросов
- 4.9.6. Обслуживание файлов журналов
- 4.10. Репликация в MySQL
- 4.10.2. Как реализована репликация: обзор
- 4.10.3. Как настроить репликацию
- 4.10.4. Возможности репликации и известные
проблемы - 4.10.5. Опции репликации в файле
my.cnf
- 4.10.6. SQL-команды, относящиеся к репликации
- 4.10.7. Часто задаваемые вопросы по репликации
- 4.10.8. Поиск неисправностей репликации
Клиентские сценарии и утилиты MySQL
- 4.8.1. Обзор клиентских сценариев и утилит
- 4.8.2.
mysql
, Утилита командной строки - 4.8.4. Использование
mysqlcheck
для
сопровождения и аварийного
восстановления таблиц. - 4.8.5.
mysqldump
, Получение дампов
данных и структуры таблицы - 4.8.6.
mysqlhotcopy
, Копирование баз
данных и таблиц MySQL - 4.8.7.
mysqlimport
, импорт данных из
текстовых файлов - 4.8.8.
mysqlshow
, просмотр баз данных,
таблиц и столбцов - 4.8.9.
mysql_config
, Получение опций
компиляции для компиляции
клиентских программ - 4.8.10.
perror
, разъяснение кодов
ошибок - 4.8.11. Как запускать SQL-команды из текстового
файла
4.8.1. Обзор клиентских сценариев и утилит
Все клиенты MySQL, которые
взаимодействуют с сервером с
помощью библиотеки
mysqlclient
, используют
следующие переменные окружения:
Использование MYSQL_PWD
небезопасно. See Раздел 4.2.8, «Соединение с сервером MySQL».
Клиент mysql
использует
файл, указанный в переменной
окружения MYSQL_HISTFILE
, для
хранения истории командной строки.
Значение по умолчанию для этого
файла истории —
$HOME/.mysql_history
, где
$HOME
— значение переменной
окружения HOME
. See
Приложение F, Переменные окружения.
Все программы MySQL принимают
множество различных опций. При
этом каждая программа MySQL
поддерживает опцию --help
,
которую можно использовать для
получения полного описания
различных опций программы.
Например, попробуйте запустить
mysql --help
.
Для всех стандартных клиентских
программ можно переопределить
значения опций по умолчанию,
используя файл опций. See
Раздел 4.1.2, «Файлы параметров my.cnf
».
В приведенном ниже списке дано
краткое описание клиентских
программ MySQL:
Сценарий оболочки операционной
системы, преобразующий
программы базы данных mSQL к виду,
приемлемому для MySQL. Он не
обрабатывает всех случаев, но с
него хорошо начинать такое
преобразование.Сценарий, который проверяет
привилегии доступа для
комбинации значений хоста,
пользователя и базы данных.Выводит содержимое базы данных
MySQL в виде файла с SQL-операторами
или в виде текстовых файлов с
символом табуляции в качестве
разделителя.
Усовершенствованная свободно
распространяемая утилита,
автором которой является Игорь
Романенко. See Раздел 4.8.5, «mysqldump
, Получение дампов
данных и структуры таблицы».Импортирует текстовые файлы в
соответствующие таблицы,
используя командуLOAD DATA
. See Раздел 4.8.7, «
INFILEmysqlimport
, импорт данных из
текстовых файлов».Отображает информацию о
существующих базах данных,
таблицах, полях и индексах.Служебная программа,
использующаяся в сценарии
msql2mysql
, но имеющая
также более широкое применение.
Утилитаreplace
изменяет
строки, находящиеся в файлах или
в стандартных входных данных.
Использует принцип конечного
автомата, чтобы в первую очередь
найти соответствие длинных
строк. Может применяться для
замены строк. Например, эта
команда меняет местами
a
иb
в данных
файлах:shell>
replace a b b a -- file1 file2 ...
4.8.2. mysql
, Утилита командной строки
Утилита командной строки
mysql
является простой
SQL-оболочкой (с возможностями
библиотеки readline
проекта
GNU). Она поддерживает интерактивный
и неинтерактивный режимы. В
интерактивном режиме результаты
запроса представляются в
ASCII-формате. При использовании в
неинтерактивном режиме (например,
в качестве фильтра) результат
представляется в текстовом
формате с символом табуляции в
качестве разделителя (выходной
формат можно изменить при помощи
параметров командной строки).
Сценарии можно запускать, как
показано ниже:
shell> mysql database < script.sql > output.tab
Если возникают проблемы из-за
недостатка памяти на данном
клиенте, применяйте параметр
--quick
! Это заставит
mysql
использовать функцию
mysql_use_result()
вместо
функции mysql_store_result()
для
получения результирующей выборки
данных.
Утилита командной строки
mysql
поддерживает
следующие параметры:
Через параметры командной строки
-O
или --set-variable
(в
MySQL 4.0 используйте просто
--var=option
) можно также
установить следующие переменные:
Если ввести в командной строке
help
, программа
mysql
выведет список
поддерживаемых ею команд:
mysql> help
Команды MySQL
help (\h) Выводит данный текст.
? (\h) Синоним для help.
clear (\c) Команда очистки.
connect (\r) Снова подключиться к серверу. Дополнительные аргументы - db и host.
edit (\e) Редактировать текущую команду с помощью $EDITOR.
ego (\G) Послать текущую команду MySQL серверу и вывести результат по вертикали.
exit (\q) Выйти из программы. То же что и quit.
go (\g) Послать текущую команду MySQL серверу.
nopager (\n) Блокировать пейджер, выводить через stdout.
notee (\t) Не добавлять записи в выходной файл outfile.
pager (\P) Установить PAGER [to_pager]. Выводить результаты запроса через PAGER.
print (\p) Вывести текущую команду.
prompt (\R) Изменить формат приглашения на ввод команд mysql.
quit (\q) Выйти из программы.
rehash (\#) Восстановить таблицу хэшей.
source (\.) Запустить на выполнение файл с SQL-сценарием. Указать имя файла в качестве аргумента.
status (\s) Получить информацию о статусе сервера.
tee (\T) Установить параметр outfile [to_outfile]. Присоединить что-либо к данному выходному файлу.
use (\u) Использовать другую базу данных. Указать имя базы данных в качестве аргумента.
Команда pager
работает
только под Unix.
Команда status
дает
информацию о текущем соединении и
используемом сервере. Если вы
работаете в режиме
--safe-updates
, команда
status
также выведет
значения переменных для
mysql
, которые влияют на
ваши запросы.
Для начинающих рекомендуется
пользоваться программой
mysql
с установленным
параметром (введен в MySQL 3.23.11)
--safe-updates
(или
--i-am-a-dummy
для
пользователей, выполнивших
DELETE FROM table_name
, но забывших
указать аргументы в WHERE
).
В этом случае mysql
при
установлении соединения посылает
следующую команду MySQL-серверу:
SET SQL_SAFE_UPDATES=1,SQL_SELECT_LIMIT=#select_limit#, SQL_MAX_JOIN_SIZE=#max_join_size#"
где #select_limit#
и
#max_join_size#
— переменные,
которые можно установить из
командной строки mysql. See
Раздел 5.5.6, «Синтаксис команды SET
».
Результат этого следующий:
Не разрешено выполнять команды
UPDATE
илиDELETE
,
если не указаны ограничения по
ключам в секцииWHERE
.
Однако можно заставить
выполняться команды
UPDATE
/DELETE
,
используя оператор
LIMIT
:UPDATE table_name SET not_key_column=# WHERE not_key_column=# LIMIT 1;
Все слишком большие результаты
ограничены строками
#select_limit#
.SELECT
ы, которые могут
потребовать для исполнения
количество комбинаций строк
более, чем#max_join_size#
,
будут прерваны.
Несколько полезных советов по
использованию клиента
mysql
:
Некоторые данные более
удобочитаемы при выводе их по
вертикали вместо обычно
используемого горизонтального
окна вывода. Например, текст,
который больше по длине, чем по
ширине, и содержит в себе много
новых строк, часто намного легче
читать в вертикальном
представлении.
mysql> SELECT * FROM mails WHERE LENGTH(txt) < 300 lIMIT 300,1\G
*************************** 1. row *************************** msg_nro: 3068 date: 2000-03-01 23:29:50
time_zone: +0200
mail_from: Monty reply: monty@no.spam.com mail_to: "Thimble Smith" <tim@no.spam.com> sbj: UTF-8 txt: >>>>> "Thimble" == Thimble Smith writes:
Thimble> Hi. I think this is a good idea. Is anyone familiar with UTF-8
Thimble> or Unicode? Otherwise, I'll put this on my TODO list and see what
Thimble> happens.
Yes, please do that.
Regards,
Monty file: inbox-jani-1 hash: 190402944
1 row in set (0.09 sec)
Несколько советов касательно
команды pager
:
Ее можно использовать для записи
в файл:mysql>
pager cat > /tmp/log.txt
и результаты будут направлены
только в файл. Вызываемые
командойpager
программы
могут принимать любые
допустимые опции:mysql>
pager less -n -i -S
Обратите особое внимание на
опцию -S в вышеприведенном
примере. Она может быть очень
полезна при просмотре
результатов. Попробуйте
применить ее с горизонтальным
выводом (завершайте команды
символами ‘\g’, or ‘;’) и с
вертикальным (в конце команд —
‘\G’). Очень громоздкие результаты
вывода иногда трудно бывает
прочесть с экрана, в этом случае
команда less с опцией -S позволит
просмотреть результаты в
интерактивном режиме слева
направо, при этом при появлении
строк с длиной больше, чем ширина
экрана, их вывод будет продолжен
вывод с новой строки. Вывод
данных в таких случаях
получается более удобочитаемым.
При интерактивном вызове
команды less с опцией ‘-S’ можно
переключать режим ее работы
(включено/выключено) из
командной строки. Чтобы получить
дополнительную информацию
относительно less, обращайтесь к
описанию команды ‘h’.В заключение отметим (если вы
этого еще не поняли из
предыдущих примеров :), что
существует возможность
комбинировать очень сложные
способы обработки результатов.
Так, в следующем примере
результаты будут посланы в два
различных каталога,
смонтированных на двух
различных жестких дисках в /dr1 and
/dr2, и, несмотря на это, результаты
можно увидеть на экране
посредством команды less:mysql>
pager cat | tee /dr1/tmp/res.txt | \
tee /dr2/tmp/res2.txt | less -n -i -S
Приведенные выше функции можно
тоже комбинировать: запустив
tee
и установив
pager
в less
, можно
просматривать результаты с
помощью Unix-команды less
и
при этом одновременно производить
запись в файл. Разница между
служебной Unix-утилитой tee
,
используемой в программе
pager
, и встроенной в
клиент mysql
командой
tee
заключается в том, что
встроенная команда tee
работает даже в том случае, если в
Unix утилита tee
недоступна.
Встроенная команда tee
также ведет запись всего, что
выводится на экран, тогда как
утилита Unix tee
,
используемая с pager
, не
делает этого в достаточном объеме.
Последнее, но тем не менее важное
обстоятельство состоит в том, что
интерактивная команда tee
более удобна для переключения
режимов работы включено/выключено,
если при записи в файл иногда
возникает необходимость отключить
эту функцию.
Начиная с версии MySQL 4.0.2 можно
изменить формат приглашения в
командной строке клиента
mysql
.
Возможны следующие опции
приглашения:
Символ ‘\
’ за
которым следует любая другая
буква, просто дополняет эту букву.
Установить параметры приглашения
можно следующими способами:
В переменных
окруженияМожно установить переменную
окруженияMYSQL_PS1
для
строки приглашения. Например:shell>
export MYSQL_PS1="(\u@\h) [\d]> "
,
Можно установить опцию prompt в
любом конфигурационном файле MySQL
в группеmysql
. Например:[mysql] prompt=(\u@\h) [\d]>\_
В командной
строкеМожно установить опцию
--prompt
из командной
строки утилитыmysql
.
Например:shell>
mysql --prompt="(\u@\h) [\d]> "
(user@host) [database]>В интерактивном
режимеМожно также использовать
командуprompt
(или
\R
) для изменения
настроек приглашения в
интерактивном режиме. Например:mysql>
prompt (\u@\h) [\d]>\_
PROMPT set to '(\u@\h) [\d]>\_' (user@host) [database]> (user@host) [database]> prompt Возвращение к исходным (по умолчанию) настройкам PROMPT в утилите mysql> mysql>
4.8.3. mysqladmin
, Администрирование
MySQL-сервера.
Утилита для выполнения
административных операций. Ее
синтаксис:
shell> mysqladmin [ПАРАМЕТРЫ] command [command-option] command ...
Все команды могут сокращаться до
их уникальных префиксов. Например:
shell> mysqladmin proc stat
+----+-------+-----------+----+-------------+------+-------+------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------+-----------+----+-------------+------+-------+------+
| 6 | monty | localhost | | Processlist | 0 | | |
+----+-------+-----------+----+-------------+------+-------+------+
Uptime: 10077 Threads: 1 Questions: 9 Slow queries: 0
Opens: 6 Flush tables: 1 Open tables: 2
Memory in use: 1092K Max memory used: 1116K
4.8.4. Использование mysqlcheck
для
сопровождения и аварийного
восстановления таблиц.
Начиная с версии MySQL 3.23.38 можно
применять новый инструмент для
проверки и восстановления
MyISAM
-таблиц. Отличие
mysqlcheck
от myisamchk
состоит в том, что утилита
mysqlcheck
должна
использоваться при работающем
сервере mysqld
, в то время
как myisamchk
— при
остановленном. Преимущество же
заключается в том, что теперь не
нужно останавливать сервер для
проверки или восстановления
таблиц.
Утилита mysqlcheck
использует соответствующие
команды MySQL-сервера CHECK
,
REPAIR
, ANALYZE
и
OPTIMIZE
удобным для
пользователя образом.
Существует три альтернативных
способа запуска mysqlcheck
:
shell>mysqlcheck [OPTIONS] database [tables]
shell>mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...]
shell>mysqlcheck [OPTIONS] --all-databases
Таким образом, утилита может
использоваться подобно
mysqldump
по отношению к
выбранным базам данных и таблицам.
В сравнении с другими клиентами
утилита mysqlcheck
имеет
следующую отличительную
особенность: установка поведения
по умолчанию, (проверка таблиц,
-с
), может быть изменена
путем переименования исполняемого
файла утилиты. Итак, чтобы получить
инструмент, восстанавливающий
таблицы по умолчанию, просто
скопируйте mysqlcheck
с новым
именем, mysqlrepair
, или,
наоборот, сделайте символьную
ссылку на mysqlrepair
и
обозначьте ее как mysqlrepair
.
Если теперь запустить
mysqlrepair
, то утилита по
умолчанию будет восстанавливать
таблицы.
Для изменения поведения
mysqlcheck
по умолчанию можно
использовать следующие
обозначения:
mysqlrepair: Значение по умолчанию будет -r mysqlanalyze: Значение по умолчанию будет -a mysqloptimize: Значение по умолчанию будет -o
Ниже приведены возможные опции для
mysqlcheck
. Какие из них
поддерживает ваша версия, можно
проверить с помощью команды
mysqlcheck --help
.
4.8.5. mysqldump
, Получение дампов
данных и структуры таблицы
Данная утилита позволяет получить
дамп («моментальный снимок»)
содержимого базы данных или
совокупности баз для создания
резервной копии или пересылки
данных на другой SQL-сервер баз
данных (не обязательно MySQL-сервер).
Дамп будет содержать набор команд
SQL для создания и/или заполнения
таблиц.
Если же резервная копия создается
на сервере, то вместо описываемой
утилиты следует использовать
mysqlhotcopy
. См.раздел See
Раздел 4.8.6, «mysqlhotcopy
, Копирование баз
данных и таблиц MySQL».
shell> mysqldump [OPTIONS] database [tables]
или mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
или mysqldump [OPTIONS] --all-databases [OPTIONS]
Если не указывать имена таблиц или
использовать параметры
--databases
или
--all-databases
, то будет получен
дамп базы данных в целом
(соответственно — всех баз данных).
Перечень опций, поддерживаемых
вашей конкретной версией утилиты
mysqldump
, можно получить,
выполнив команду mysqldump
.
--help
Следует иметь в виду, что утилита
mysqldump
, используемая без
опций --quick
или
--opt
, перед тем, как сделать
дамп результата выборки
информации, загрузит весь
результат в память. Это может
создать проблемы при получении
дампа большой базы данных.
Учтите, что не следует применять
параметры --opt
или
-e
, если вы собираетесь
использовать для получения дампа
новую копию программы
mysqldump
, а затем
воспроизводить его на очень старом
MySQL-сервере.
Утилита mysqldump
поддерживает следующие опции:
Чаще всего утилита mysqldump
используется для получения
резервной копии всех баз данных. See
Раздел 4.4.1, «Резервное копирование баз данных».
mysqldump --opt database > backup-file.sql
Можно, наоборот, прочитать этот
файл на MySQL-сервере посредством
команды:
mysql database < backup-file.sql
mysql -e "source /patch-to-backup/backup-file.sql" database
Данная утилита достаточно часто
используется и для переноса
информации из базы данных на
другой MySQL-сервер:
mysqldump --opt database | mysql --host=remote-host -C database
Вполне возможно получить дамп
нескольких баз данных с помощью
одной команды:
mysqldump --databases database1 [database2 ...] > my_databases.sql
Если необходим дамп всех баз
данных, можно использовать:
mysqldump --all-databases > all_databases.sql
4.8.6. mysqlhotcopy
, Копирование баз
данных и таблиц MySQL
Утилита mysqlhotcopy
представляет собой Perl-сценарий,
использующий SQL-команды LOCK
,
TABLESFLUSH TABLES
и
Unix-утилиты cp
или
scp
для быстрого
получения резервной копии базы
данных. Пожалуй, это наиболее
быстрый способ копирования баз
данных или таблиц, но он может
работать только на том же
компьютере, где расположены
каталоги копируемой базы данных.
mysqlhotcopy db_name [/path/to/new_directory] mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory mysqlhotcopy db_name./regex/
Утилита mysqlhotcopy
поддерживает следующие опции:
Более полное описание данного
сценария можно посмотреть в
документации по языку
программирования Perl.
Для выполнения программы
mysqlhotcopy
необходимы
доступ для записи в директорию,
куда будет помещена копия, и
привилегия выполнения команды
SELECT
для копируемых
таблиц и команды RELOAD
для
MySQL-сервера (чтобы выполнить
FLUSH TABLES
).
4.8.7. mysqlimport
, импорт данных из
текстовых файлов
Утилита mysqlimport
обеспечивает интерфейс командной
строки для SQL-оператора LOAD DATA
. Большинство параметров
INFILE
mysqlimport
полностью
соответствует аналогичным
параметрам для оператора LOAD
. See Раздел 6.4.9, «Синтаксис оператора
DATA INFILELOAD DATA
».
INFILE
Утилита mysqlimport
вызывается следующим образом:
shell> mysqlimport [параметры] database textfile1 [textfile2 ...]
Для каждого текстового файла,
указанного в командной строке,
mysqlimport
удаляет
расширение в каждом имени файла и
использует его, чтобы определить, в
какую таблицу занести содержимое.
Например, файлы с именами
patient.txt
,
patient.text
и
patient
должны быть все
занесены в таблицу с именем
patient
.
Утилита mysqlimport
поддерживает следующие опции:
Ниже приведен пример листинга
программы, использующей утилиту
mysqlimport
:
$ mysql --version mysql Ver 9.33 Distrib 3.22.25, for pc-linux-gnu (i686) $ uname -a Linux xxx.com 2.2.5-15 #1 Mon Apr 19 22:21:09 EDT 1999 i586 unknown $ mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test $ ed a 100 Max Sydow 101 Count Dracula . w imptest.txt 32 q $ od -c imptest.txt 0000000 1 0 0 \t M a x S y d o w \n 1 0 0000020 1 \t C o u n t D r a c u l a \n 0000040 $ mysqlimport --local test imptest.txt test.imptest: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0 $ mysql -e 'SELECT * FROM imptest' test +------+---------------+ | id | n | +------+---------------+ | 100 | Max Sydow | | 101 | Count Dracula | +------+---------------+
4.8.8. mysqlshow
, просмотр баз данных,
таблиц и столбцов
Утилита mysqlshow
позволяет
кратко ознакомиться с
существующими базами данных, их
таблицами и столбцами таблиц.
Аналогичную информацию можно
получить с помощью программы
mysql
, используя команду
SHOW
. See Раздел 4.5.6, «Синтаксис команды SHOW
».
Утилита mysqlshow
вызывается
следующим образом:
shell> mysqlshow [ПАРАМЕТРЫ] [database [table [column]]]
Если имя базы данных не указано,
то выдается список всех
существующих баз данных.Если не указана таблица —
показываются все таблицы,
найденные в этой базе данныхЕсли не задан столбец —
показываются все найденные в
таблице столбцы и
представленные в виде столбцов
данные.
Следует отметить, что в более новых
версиях MySQL пользователь может
просмотреть только те
базы/таблицы/столбцы, для которых у
него имеются соответствующие
привилегии.
Если последний аргумент содержит в
себе шаблонные символы
(*
, ?
,
%
или _
)
процессора или SQL, то будут
представлены только данные,
совпадающие с шаблоном. Если имя
базы данных содержит
подчеркивание, то оно должно быть
экранировано обратным слешом
(некоторые оболочки в Unix
востребуют два обратных слеша) для
того, чтобы получить корректные
имена. ‘*
’
корвертируются в
‘%
’ и
‘?
’ — в
‘_
’.
Это может вызвать путаницу при
попытке просмотреть столбцы
таблицы с символом _
, так
как в таком случае mysqlshow
покажет только имена таблиц,
совпадающие с шаблоном. Ситуацию
можно легко исправить добавлением
дополнительного символа
%
в конец командной
строки (как отдельного аргумента).
4.8.9. mysql_config
, Получение опций
компиляции для компиляции
клиентских программ
mysql_config
дает полезную
информацию о том, как
компилировать ваши клиентские
программы.
mysql_config
поддерживает
такие опции:
Опции компилятора для поиска
включаемых файловБиблиотеки и опции, необходимые
для линкования с клиентской
библиотекой.Имя сокета по умолчанию,
определенное, когда
конфигурировался MySQL.Номер порта по умолчанию,
определенный, когда
конфигурировался MySQL.Номер версии и версия для
поставки MySQL.Библиотеки и опции, необходимые
для линкования с библиотекой
встраиваемого сервера.
Если вы выполняете
mysql_config
без каких-либо
параметров, вы получите все опции,
которые он поддерживает плюс
значение этих опций:
shell> mysql_config
sage: /usr/local/mysql/bin/mysql_config [OPTIONS]
Options: --cflags [-I'/usr/local/mysql/include/mysql'] --libs [-L'/usr/local/mysql/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -lssl -lcrypto] --socket [/tmp/mysql.sock] --port [3306] --version [4.0.8-gamma] --libmysqld-libs [ -L'/usr/local/mysql/lib/mysql' -lmysqld -lpthread -lz -lcrypt -lnsl -lm -lpthread -lrt]
Вы можете это использовать, чтобы
скопмилировать клиента MySQL таким
образом:
CFG=/usr/local/mysql/bin/mysql_config sh -c "gcc -o progname `$CFG --cflags` progname.c `$CFG --libs`"
4.8.10. perror
, разъяснение кодов
ошибок
Выяснить, что данный код ошибки
означает, можно либо путем
изучения документации на данную
систему, либо воспользовавшись
возможностями утилиты
perror
.
perror выводит описание кода
системной ошибки или код ошибки
обработчика таблиц
MyISAM
/ISAM
.
perror
вызывается
следующим образом:
shell> perror [ПАРАМЕТРЫ] [ERRORCODE [ERRORCODE...]]
shell> perror 13 64
Error code 13: Доступ запрещен
Error code 64: Компьютер не находится в сети
Следует учитывать, что сообщения
об ошибках в большинстве своем
являются системно-зависимыми!
4.8.11. Как запускать SQL-команды из текстового
файла
Обычно клиент mysql
используется в интерактивном
режиме, например, следующим
образом:
shell> mysql database
Однако вполне можно поместить SQL
команды в текстовый файл и указать
mysql
считывать входные
данные из этого файла. Для этого
необходимо создать текстовый файл
text_file
, содержащий
команды, которые предстоит
выполнить. Затем запускаем
mysql
как показано ниже:
shell> mysql database < text_file
Можно также запустить текстовый
файл с командой USE db_name
. В
этом случае указывать имя базы
данных в командной строке не
обязательно:
shell> mysql < text_file
Если программа
mysql уже
работает, можно запустить файл с
SQL-сценарием, используя команду
source
:
mysql> source filename;
Более подробная информация по
пакетному режиму работы находится
в разделе See Раздел 3.6, «Использование mysql
в пакетном
режиме».
Creating a New User
- mysql
- mysql root
- ">CREATE @ IDENTIFIED WITH authentication_plugin BY
- ">CREATE @ IDENTIFIED BY
- ">CREATE @ IDENTIFIED WITH mysql_native_password BY
- ">ALTER @ IDENTIFIED WITH mysql_native_password BY
Prerequisites
You could alternatively spin up a MySQL database managed by a cloud provider. For details on how to spin up a DigitalOcean Managed Database, see our product documentation.
Please note that any portions of example commands that you need to change or customize will be highlighted like this
throughout this guide.