Spec-Zone.ru › MySQL 8.4

B.2 Интерфейсы информации об ошибках

Сообщения об ошибках могут исходить от серверной или клиентской стороны, и каждое сообщение об ошибке включает код ошибки, значение SQLSTATE и строку сообщения, как описано в разделе B.1, «Источники и элементы сообщений об ошибках». Для списков ошибок серверной, клиентской и глобальных (общих для сервера и клиентов) ошибок см. .

Для проверки ошибок внутри программ используйте числовые коды или символы ошибок, а не строки сообщений об ошибках. Строки сообщений не часто меняются, но это возможно. Кроме того, если администратор базы данных изменит языковые настройки, это повлияет на язык строк сообщений; см. раздел 12.12, «Установка языка сообщений об ошибках».

Информация об ошибках в MySQL доступна в журнале ошибок сервера, на уровне SQL, изнутри клиентских программ и в командной строке.

  • Журнал ошибок

  • Интерфейс сообщений об ошибках SQL

  • Интерфейс сообщений об ошибках клиента

  • Интерфейс сообщений об ошибках командной строки

Журнал ошибок

На стороне сервера некоторые сообщения предназначены для журнала ошибок. Для получения информации о конфигурации места и способа записи журнала сервером см. раздел 7.4.2, «Журнал ошибок».

Другие сообщения об ошибках сервера предназначены для отправки клиентским программам и доступны, как описано в интерфейсе сообщений об ошибках клиента.

Диапазон, в котором находится определенный код ошибки, определяет, записывает ли сервер сообщение об ошибке в журнал ошибок или отправляет его клиентам. Для получения информации об этих диапазонах см. Диапазоны кодов ошибок.

Интерфейс сообщений об ошибках SQL

На уровне SQL существует несколько источников информации об ошибках в MySQL:

  • Информация о предупреждениях и ошибках SQL-запросов доступна через операторы SHOW WARNINGS и SHOW ERRORS. Переменная системы warning_count указывает количество ошибок, предупреждений и заметок (при этом заметки исключаются, если переменная системы sql_notes отключена). Переменная системы error_count указывает количество ошибок. Ее значение не включает предупреждения и заметки.

  • Оператор GET DIAGNOSTICS может использоваться для проверки диагностической информации в области диагностики. См. раздел 15.6.7.3, «Оператор GET DIAGNOSTICS».

  • Вывод оператора SHOW REPLICA STATUS включает информацию об ошибках репликации, возникающих на серверах-репликах.

  • Вывод оператора SHOW ENGINE INNODB STATUS включает информацию о самой последней ошибке внешнего ключа, если оператор CREATE TABLE для таблицы InnoDB завершается ошибкой.

Интерфейс сообщений об ошибках клиента

Клиентские программы получают ошибки из двух источников:

  • Ошибки, которые возникают на стороне клиента внутри библиотеки MySQL-клиента.

  • Ошибки, которые возникают на стороне сервера и отправляются клиенту сервером. Они получаются внутри библиотеки клиента, что делает их доступными для основной клиентской программы.

Диапазон, в котором находится определенный код ошибки, определяет, возникла ли ошибка внутри библиотеки клиента или была получена клиентом от сервера. Для получения информации об этих диапазонах см. Диапазоны кодов ошибок.

Независимо от того, возникла ли ошибка внутри библиотеки клиента или была получена от сервера, клиентская программа MySQL получает код ошибки, значение SQLSTATE, строку сообщения и другую связанную информацию, вызывая функции API библиотеки клиента:

  • возвращает код ошибки MySQL.

  • возвращает значение SQLSTATE.

  • возвращает строку сообщения.

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

  • возвращает количество ошибок, предупреждений и заметок для последнего оператора.

Для описаний функций ошибок клиентской библиотеки см. .

Клиентская программа MySQL может реагировать на ошибку различными способами. Клиент может отобразить сообщение об ошибке, чтобы пользователь мог принять корректирующие меры, попытаться внутренне разрешить или повторить неудачную операцию или принять другие действия. Например, (используя клиент mysql) неудача при подключении к серверу может привести к такому сообщению:

$> mysql -h no-such-host
ERROR 2005 (HY000): Unknown MySQL server host 'no-such-host' (-2)

Интерфейс сообщений об ошибках командной строки

Программа perror предоставляет информацию из командной строки о номерах ошибок. См. раздел 6.8.1, «perror — Отображение информации о сообщении об ошибке MySQL».

$> perror 1231
MySQL error code MY-001231 (ER_WRONG_VALUE_FOR_VAR): Variable '%-.64s'
can't be set to the value of '%-.200s'

Для ошибок MySQL NDB Cluster используйте ndb_perror. См. раздел 25.5.16, «ndb_perror — Получение информации о сообщении об ошибке NDB».

$> ndb_perror 323
NDB error code 323: Invalid nodegroup id, nodegroup already existing:
Permanent error: Application error

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/error-interfaces.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API