Spec-Zone.ru › MySQL 9.2

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 C в клиентской библиотеке:

  • возвращает код ошибки 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-9.2-en/error-interfaces.html

Spec-Zone.ru

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