How to grant all privileges to root user in MySQL 8.0

Глава 4. Администрирование баз данных

4.1. Конфигурирование MySQL
4.1.1. Параметры командной строки
mysqld
4.1.2. Файлы параметров my.cnf
4.1.3. Установка нескольких серверов на один
компьютер
4.1.4. Запуск нескольких серверов MySQL на одном
компьютере
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.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.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.6. Локализация MySQL и использование
национальных алфавитов
4.6.1. Набор символов, применяющийся для
записи данных и сортировки
4.6.2. Сообщения об ошибках на языках,
отличных от английского
4.6.3. Добавление набора символов
4.6.4. Массивы определения символов
4.6.5. Поддержка упорядочивания строк
4.6.6. Поддержка многобайтовых символов
4.6.7. Проблемы с наборами символов
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
    INFILE
    . See Раздел 4.8.7, «mysqlimport, импорт данных из
    текстовых файлов»
    .

  • Отображает информацию о
    существующих базах данных,
    таблицах, полях и индексах.

  • Служебная программа,
    использующаяся в сценарии
    msql2mysql, но имеющая
    также более широкое применение.
    Утилита replace изменяет
    строки, находящиеся в файлах или
    в стандартных входных данных.
    Использует принцип конечного
    автомата, чтобы в первую очередь
    найти соответствие длинных
    строк. Может применяться для
    замены строк. Например, эта
    команда меняет местами
    a и b в данных
    файлах:

    shell> replace a b b a -- file1 file2 ...

4.8.2. mysql, Утилита командной строки

Дополнительно:  Root Folder

Утилита командной строки
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
более удобна для переключения
режимов работы включено/выключено,
если при записи в файл иногда
возникает необходимость отключить
эту функцию.

Дополнительно:  windows-7 - Перестали работать клавиши Ctrl, Shift и Alt - PowerUser

Начиная с версии 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
TABLES
, FLUSH TABLES и
Unix-утилиты cp или
scp для быстрого
получения резервной копии базы
данных. Пожалуй, это наиболее
быстрый способ копирования баз
данных или таблиц, но он может
работать только на том же
компьютере, где расположены
каталоги копируемой базы данных.

Дополнительно:  Стоит ли скачивать root

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
DATA INFILE
. See Раздел 6.4.9, «Синтаксис оператора LOAD 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_configsage: /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 64Error 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

  1. mysql
  1. mysql root
  1. ">CREATE @ IDENTIFIED WITH authentication_plugin BY
  1. ">CREATE @ IDENTIFIED BY
  1. ">CREATE @ IDENTIFIED WITH mysql_native_password BY
  1. ">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.

Оцените статью
Master Hi-technology