RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Приложение B. Ошибки, коды ошибок и общие проблемы

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

B.1. Источники информации об ошибке

Есть несколько источников информации об ошибке в MySQL:

  • Каждый запрос SQL выдает результаты в коде ошибки, значении SQLSTATE и сообщении об ошибке, как описано в разделе B.2. Эти ошибки возвращены с сервера, см. раздел B.3.

  • Ошибки могут произойти на стороне клиента, обычно вовлекая проблемы связи с сервером, см. раздел B.4.
  • Запросы SQL, предупреждения и информация об ошибке доступны через SHOW WARNINGS и SHOW ERRORS. Системная переменная warning_count указывает на число ошибок, предупреждений и примечаний. Системная переменная error_count указывает на число ошибок. Ее значение исключает предупреждения и примечания.
  • Запрос GET DIAGNOSTICS может использоваться, чтобы осмотреть диагностическую информацию в области диагностики. См. раздел 14.6.7.3.
  • Запрос SHOW SLAVE STATUS выводит информацию об ошибках репликации, происходящих на ведомой стороне.
  • Запрос SHOW ENGINE INNODB STATUS включает информацию о новой ошибке внешнего ключа, если запрос CREATE TABLE для таблицы InnoDB терпит неудачу.
  • Программа perror предоставляет информацию из командной строки о кодах ошибки. См. раздел 5.8.2.

Описания ошибок сервера и клиента обеспечены позже в этом Приложении. Для информации об ошибках, связанных с InnoDB, см. раздел 16.20.4.

B.2. Типы значений ошибки

Когда ошибка происходит в MySQL, сервер возвращает два типа значений:

  • MySQL-код ошибки. Это значение является числовым. Это не аналогично другим системам баз данных.

  • Значение SQLSTATE. Значением является пятисимвольная строка (например, '42S02'). Значения взяты из ANSI SQL и ODBC и более-менее стандартизированы.

Строка сообщения, которая обеспечивает текстовое описание ошибки, также доступна.

Когда ошибка происходит, код ошибки MySQL, значение SQLSTATE и строка сообщения доступны через функции C API:

Для готовых запросов соответствующие функции ошибок mysql_stmt_errno(), mysql_stmt_sqlstate() и mysql_stmt_error() . Все функции ошибок описаны в разделе 25.8 .

Число ошибок, предупреждений и примечаний для предыдущего запроса может быть получено вызовом mysql_warning_count() . См. раздел 25.8.7.77.

Первые два символа значения SQLSTATE указывают на класс ошибки:

  • '00' указывает на успех.

  • '01' указывает на предупреждение.
  • '02' указывает на "не найдено found". Это релевантно в пределах контекста курсоров и используется, чтобы управлять тем, что происходит, когда курсор достигает конца набора данных. Это условие также происходит для запроса SELECT ... INTO var_list , который не получает строк.
  • '02' указывает на исключение.

B.3. Коды ошибок сервера

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

shell> SELECT * FROM no_such_table;
ERROR 1146 (42S02): Table 'test.no_such_table' doesn't exist
Выведенное на экран сообщение содержит три типа информации:

  • Числовой код ошибки (1146). Это число является MySQL-определенным и не является переносимым к другим системам баз данных.

  • Пятисимвольное значение SQLSTATE ('42S02'). Значения взяты из ANSI SQL и ODBC и более-менее стандартизированы. Не у всех кодов ошибки MySQL есть соответствующие значения SQLSTATE. В этих случаях используется 'HY000' (общая ошибка).
  • Строка сообщения, которая обеспечивает текстовое описание ошибки.

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

Коды ошибки устойчивы во всех релизах GA данного ряда MySQL. Прежде, чем ряд достигает состояния GA, новые коды могут все еще разрабатываться и подвержены изменениям.

Информация об ошибке сервера прибывает из следующих исходных файлов. Для деталей о способе, которым определена информация об ошибке, см. MySQL Internals Manual.

  • Информация о сообщении об ошибке перечислена в файле share/errmsg-utf8.txt. %d и %s представляют числа и строки, соответственно, которые заменяются значениями в сообщениии, когда оно выведено на экран.

  • Ошибочные значения, перечисленные в share/errmsg-utf8.txt, используются, чтобы произвести определения в исходных файлах include/mysqld_error.h и include/mysqld_ername.h.
  • Значения SQLSTATE, перечисленные в share/errmsg-utf8.txt используются, чтобы произвести определения в исходном файле include/sql_state.h MySQL.

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

  • Ошибка: 1002 SQLSTATE: HY000 (ER_NO)

    Сообщение: Нет.

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

  • Ошибка: 1003 SQLSTATE: HY000 (ER_YES)

    Сообщение: Да.

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

    Расширенный формат EXPLAIN производит сообщения примечаний. ER_YES используется в столбце Code для этих сообщений в последующем выводе SHOW WARNINGS.

  • Ошибка: 1004 SQLSTATE: HY000 (ER_CANT_CREATE_FILE )

    Сообщение: Can't create file '%s' (errno: %d - %s)

    Происходит при отказе создать или скопировать файл, необходимый для некоторой работы.

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

  • Ошибка: 1005 SQLSTATE: HY000 (ER_CANT_CREATE_TABLE )

    Сообщение: Can't create table '%s' (errno: %d - %s)

    InnoDB выдает эту ошибку, когда таблица не может быть составлена. Если сообщение об ошибке относится к ошибке 150, создание таблицы провалилось из-за того, что ограничение внешнего ключа не было правильно сформировано. Если сообщение об ошибке относится к ошибке 1, создание таблицы провалилось потому, что таблица включает имя столбца, которое соответствует названию внутренней таблицы InnoDB.

  • Ошибка: 1006 SQLSTATE: HY000 (ER_CANT_CREATE_DB )

    Сообщение: Can't create database '%s' (errno: %d - %s)

  • Ошибка: 1007 SQLSTATE: HY000 (ER_DB_CREATE_EXISTS)

    Сообщение: Can't create database '%s'; database exists

    Попытка создать базу данных провалилась, потому что база данных уже существует. Удалите базу данных сначала, если Вы действительно хотите заменить существующую базу данных, или добавьте предложение IF NOT EXISTS в CREATE DATABASE для обхода ошибки.

  • Ошибка: 1008 SQLSTATE: HY000 (ER_DB_DROP_EXISTS )

    Сообщение: Can't drop database '%s'; database doesn't exist

  • Ошибка: 1010 SQLSTATE: HY000 (ER_DB_DROP_RMDIR )

    Сообщение: Error dropping database (can't rmdir '%s', errno: %d - %s)

  • Ошибка: 1012 SQLSTATE: HY000 ( ER_CANT_FIND_SYSTEM_REC)

    Сообщение: Can't read record in system table

    Возвращена InnoDB для попыток получить доступ к InnoDB-таблицам INFORMATION_SCHEMA, когда InnoDB недоступно.

  • Ошибка: 1013 SQLSTATE: HY000 (ER_CANT_GET_STAT )

    Сообщение: Can't get status of '%s' (errno: %d - %s)

  • Ошибка: 1015 SQLSTATE: HY000 (ER_CANT_LOCK)

    Сообщение: Can't lock file (errno: %d - %s)

  • Ошибка: 1016 SQLSTATE: HY000 (ER_CANT_OPEN_FILE )

    Сообщение: Can't open file: '%s' (errno: %d - %s)

    InnoDB возвращает эту ошибку, когда файлы данных таблицы InnoDB не могут быть найдены.

  • Ошибка: 1017 SQLSTATE: HY000 (ER_FILE_NOT_FOUND )

    Сообщение: Can't find file: '%s' (errno: %d - %s)

  • Ошибка: 1018 SQLSTATE: HY000 (ER_CANT_READ_DIR )

    Сообщение: Can't read dir of '%s' (errno: %d - %s)

  • Ошибка: 1020 SQLSTATE: HY000 (ER_CHECKREAD)

    Сообщение: Record has changed since last read in table '%s'

  • Ошибка: 1022 SQLSTATE: 23000 (ER_DUP_KEY)

    Сообщение: Can't write; duplicate key in table '%s'

  • Ошибка: 1024 SQLSTATE: HY000 (ER_ERROR_ON_READ )

    Сообщение: Error reading file '%s' (errno: %d - %s)

  • Ошибка: 1025 SQLSTATE: HY000 (ER_ERROR_ON_RENAME )

    Сообщение: Error on rename of '%s' to '%s' (errno: %d - %s)

  • Ошибка: 1026 SQLSTATE: HY000 (ER_ERROR_ON_WRITE )

    Сообщение: Error writing file '%s' (errno: %d - %s)

  • Ошибка: 1027 SQLSTATE: HY000 (ER_FILE_USED)

    Сообщение: '%s' is locked against change

  • Ошибка: 1028 SQLSTATE: HY000 (ER_FILSORT_ABORT )

    Сообщение: Sort aborted

  • Ошибка: 1030 SQLSTATE: HY000 (ER_GET_ERRNO)

    Сообщение: Got error %d - '%s' from storage engine

    Проверьте значение %d, чтобы видеть, что означает ошибка в Вашей OS. Например, 28 указывает, что Вы исчерпали дисковое пространство.

  • Ошибка: 1031 SQLSTATE: HY000 (ER_ILLEGAL_HA)

    Сообщение: Table storage engine for '%s' doesn't have this option

  • Ошибка: 1032 SQLSTATE: HY000 (ER_KEY_NOT_FOUND )

    Сообщение: Can't find record in '%s'

  • Ошибка: 1033 SQLSTATE: HY000 (ER_NOT_FORM_FILE )

    Сообщение: Incorrect information in file: '%s'

  • Ошибка: 1034 SQLSTATE: HY000 (ER_NOT_KEYFILE)

    Сообщение: Incorrect key file for table '%s'; try to repair it

  • Ошибка: 1035 SQLSTATE: HY000 (ER_OLD_KEYFILE)

    Сообщение: Old key file for table '%s'; repair it!

  • Ошибка: 1036 SQLSTATE: HY000 (ER_OPEN_AS_READONLY )

    Сообщение: Table '%s' is read only

  • Ошибка: 1037 SQLSTATE: HY001 (ER_OUTOFMEMORY)

    Сообщение: Out of memory; restart server and try again (needed %d bytes)

  • Ошибка: 1038 SQLSTATE: HY001 (ER_OUT_OF_SORTMEMORY )

    Сообщение: Out of sort memory, consider increasing server sort buffer size

  • Ошибка: 1040 SQLSTATE: 08004 (ER_CON_COUNT_ERROR )

    Сообщение: Too many connections

  • Ошибка: 1041 SQLSTATE: HY000 (ER_OUT_OF_RESOURCES )

    Сообщение: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space

  • Ошибка: 1042 SQLSTATE: 08S01 (ER_BAD_HOST_ERROR )

    Сообщение: Can't get hostname for your address

  • Ошибка: 1043 SQLSTATE: 08S01 (ER_HANDSHAKE_ERROR )

    Сообщение: Bad handshake

  • Ошибка: 1044 SQLSTATE: 42000 ( ER_DBACCESS_DENIED_ERROR)

    Сообщение: Access denied for user '%s'@'%s' to database '%s'

  • Ошибка: 1045 SQLSTATE: 28000 ( ER_ACCESS_DENIED_ERROR)

    Сообщение: Access denied for user '%s'@'%s' (using password: %s)

  • Ошибка: 1046 SQLSTATE: 3D000 (ER_NO_DB_ERROR)

    Сообщение: No database selected

  • Ошибка: 1047 SQLSTATE: 08S01 (ER_UNKNOWN_COM_ERROR )

    Сообщение: Unknown command

  • Ошибка: 1048 SQLSTATE: 23000 (ER_BAD_NULL_ERROR )

    Сообщение: Column '%s' cannot be null

  • Ошибка: 1049 SQLSTATE: 42000 (ER_BAD_DB_ERROR)

    Сообщение: Unknown database '%s'

  • Ошибка: 1050 SQLSTATE: 42S01 (ER_TABLE_EXISTS_ERROR )

    Сообщение: Table '%s' already exists

  • Ошибка: 1051 SQLSTATE: 42S02 (ER_BAD_TABLE_ERROR )

    Сообщение: Unknown table '%s'

  • Ошибка: 1052 SQLSTATE: 23000 (ER_NON_UNIQ_ERROR )

    Сообщение: Column '%s' in %s is ambiguous. %s = имя столбца. %s = местоположение столбца (например, "список полей"). Вероятная причина: столбец появляется в запросе без соответствующей квалификации, такой как в списке select или предложении ON.

    Примеры:

    mysql> SELECT i FROM t INNER JOIN t AS t2;
    ERROR 1052 (23000): Column 'i' in field list is ambiguous
    
    mysql> SELECT * FROM t LEFT JOIN t AS t2 ON i = i;
    ERROR 1052 (23000): Column 'i' in on clause is ambiguous
    
    Решения:
    • Квалифицируйте столбец с соответствующим именем таблицы:

      mysql> SELECT t2.i FROM t INNER JOIN t AS t2;
      
    • Измените запрос, чтобы избежать потребности в квалификации:
      mysql> SELECT * FROM t LEFT JOIN t AS t2 USING (i);
      
  • Ошибка: 1053 SQLSTATE: 08S01 (ER_SERVER_SHUTDOWN )

    Сообщение: Server shutdown in progress

  • Ошибка: 1054 SQLSTATE: 42S22 (ER_BAD_FIELD_ERROR )

    Сообщение: Unknown column '%s' in '%s'

  • Ошибка: 1055 SQLSTATE: 42000 ( ER_WRONG_FIELD_WITH_GROUP)

    Сообщение: '%s' isn't in GROUP BY

  • Ошибка: 1056 SQLSTATE: 42000 (ER_WRONG_GROUP_FIELD )

    Сообщение: Can't group on '%s'

  • Ошибка: 1057 SQLSTATE: 42000 (ER_WRONG_SUM_SELECT )

    Сообщение: Statement has sum functions and columns in same statement

  • Ошибка: 1058 SQLSTATE: 21S01 (ER_WRONG_VALUE_COUNT )

    Сообщение: Column count doesn't match value count

  • Ошибка: 1059 SQLSTATE: 42000 (ER_TOO_LONG_IDENT )

    Сообщение: Identifier name '%s' is too long

  • Ошибка: 1060 SQLSTATE: 42S21 (ER_DUP_FIELDNAME )

    Сообщение: Duplicate column name '%s'

  • Ошибка: 1061 SQLSTATE: 42000 (ER_DUP_KEYNAME )

    Сообщение: Duplicate key name '%s'

  • Ошибка: 1062 SQLSTATE: 23000 (ER_DUP_ENTRY)

    Сообщение: Duplicate entry '%s' for key %d

    Сообщение, возвращенное с этой ошибкой, использует строку формата для ER_DUP_ENTRY_WITH_KEY_NAME.

  • Ошибка: 1063 SQLSTATE: 42000 (ER_WRONG_FIELD_SPEC )

    Сообщение: Incorrect column specifier for column '%s'

  • Ошибка: 1064 SQLSTATE: 42000 (ER_PARSE_ERROR)

    Сообщение: %s near '%s' at line %d

  • Ошибка: 1065 SQLSTATE: 42000 (ER_EMPTY_QUERY)

    Сообщение: Query was empty

  • Ошибка: 1066 SQLSTATE: 42000 (ER_NONUNIQ_TABLE )

    Сообщение: Not unique table/alias: '%s'

  • Ошибка: 1067 SQLSTATE: 42000 (ER_INVALID_DEFAULT )

    Сообщение: Invalid default value for '%s'

  • Ошибка: 1068 SQLSTATE: 42000 (ER_MULTIPLE_PRI_KEY )

    Сообщение: Multiple primary key defined

  • Ошибка: 1069 SQLSTATE: 42000 (ER_TOO_MANY_KEYS )

    Сообщение: Too many keys specified; max %d keys allowed

  • Ошибка: 1070 SQLSTATE: 42000 (ER_TOO_MANY_KEY_PARTS )

    Сообщение: Too many key parts specified; max %d parts allowed

  • Ошибка: 1071 SQLSTATE: 42000 (ER_TOO_LONG_KEY )

    Сообщение: Specified key was too long; max key length is %d bytes

  • Ошибка: 1072 SQLSTATE: 42000 ( ER_KEY_COLUMN_DOES_NOT_EXITS)

    Сообщение: Key column '%s' doesn't exist in table

  • Ошибка: 1073 SQLSTATE: 42000 (ER_BLOB_USED_AS_KEY )

    Сообщение: BLOB column '%s' can't be used in key specification with the used table type

  • Ошибка: 1074 SQLSTATE: 42000 ( ER_TOO_BIG_FIELDLENGTH)

    Сообщение: Column length too big for column '%s' (max = %lu); use BLOB or TEXT instead

  • Ошибка: 1075 SQLSTATE: 42000 (ER_WRONG_AUTO_KEY )

    Сообщение: Incorrect table definition; there can be only one auto column and it must be defined as a key

  • Ошибка: 1076 SQLSTATE: HY000 (ER_READY)

    Сообщение: %s: ready for connections. Version: '%s' socket: '%s' port: %d

  • Ошибка: 1077 SQLSTATE: HY000 (ER_NORMAL_SHUTDOWN )

    Сообщение: %s: Normal shutdown

  • Ошибка: 1079 SQLSTATE: HY000 (ER_SHUTDOWN_COMPLETE )

    Сообщение: %s: Shutdown complete

  • Ошибка: 1080 SQLSTATE: 08S01 (ER_FORCING_CLOSE )

    Сообщение: %s: Forcing close of thread %ld user: '%s'

  • Ошибка: 1081 SQLSTATE: 08S01 (ER_IPSOCK_ERROR )

    Сообщение: Can't create IP socket

  • Ошибка: 1082 SQLSTATE: 42S12 (ER_NO_SUCH_INDEX )

    Сообщение: Table '%s' has no index like the one used in CREATE INDEX; recreate the table

  • Ошибка: 1083 SQLSTATE: 42000 ( ER_WRONG_FIELD_TERMINATORS)

    Сообщение: Field separator argument is not what is expected; check the manual

  • Ошибка: 1084 SQLSTATE: 42000 (ER_BLOBS_AND_NO_TERMINATED)

    Сообщение: You can't use fixed rowlength with BLOBs; please use 'fields terminated by'

  • Ошибка: 1085 SQLSTATE: HY000 (ER_TEXTFILE_NOT_READABLE)

    Сообщение: The file '%s' must be in the database directory or be readable by all

  • Ошибка: 1086 SQLSTATE: HY000 (ER_FILE_EXISTS_ERROR)

    Сообщение: File '%s' already exists

  • Ошибка: 1087 SQLSTATE: HY000 (ER_LOAD_INFO)

    Сообщение: Records: %ld Deleted: %ld Skipped: %ld Warnings: %ld

  • Ошибка: 1088 SQLSTATE: HY000 (ER_ALTER_INFO)

    Сообщение: Records: %ld Duplicates: %ld

  • Ошибка: 1089 SQLSTATE: HY000 (ER_WRONG_SUB_KEY)

    Сообщение: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys

  • Ошибка: 1090 SQLSTATE: 42000 (ER_CANT_REMOVE_ALL_FIELDS)

    Сообщение: You can't delete all columns with ALTER TABLE; use DROP TABLE instead

  • Ошибка: 1091 SQLSTATE: 42000 (ER_CANT_DROP_FIELD_OR_KEY)

    Сообщение: Can't DROP '%s'; check that column/key exists

  • Ошибка: 1092 SQLSTATE: HY000 (ER_INSERT_INFO)

    Сообщение: Records: %ld Duplicates: %ld Warnings: %ld

  • Ошибка: 1093 SQLSTATE: HY000 (ER_UPDATE_TABLE_USED )

    Сообщение: You can't specify target table '%s' for update in FROM clause

    Эта ошибка происходит для попыток выбрать из и изменить ту же самую таблицу в пределах единственного запроса. Если попытка происходит в пределах полученной таблицы, Вы можете избежать этой ошибки, устанавливая флаг derived_merge в системной переменной optimizer_switch , чтобы вынудить подзапрос использовать временную таблицу, которая точно будет не той таблицей, которая меняется. См. раздел 9.2.1.18.3.

  • Ошибка: 1094 SQLSTATE: HY000 (ER_NO_SUCH_THREAD )

    Сообщение: Unknown thread id: %lu

  • Ошибка: 1095 SQLSTATE: HY000 (ER_KILL_DENIED_ERROR )

    Сообщение: You are not owner of thread %lu

  • Ошибка: 1096 SQLSTATE: HY000 (ER_NO_TABLES_USED )

    Сообщение: No tables used

  • Ошибка: 1097 SQLSTATE: HY000 (ER_TOO_BIG_SET )

    Сообщение: Too many strings for column %s and SET

  • Ошибка: 1098 SQLSTATE: HY000 (ER_NO_UNIQUE_LOGFILE )

    Сообщение: Can't generate a unique log-filename %s.(1-999)

  • Ошибка: 1099 SQLSTATE: HY000 ( ER_TABLE_NOT_LOCKED_FOR_WRITE)

    Сообщение: Table '%s' was locked with a READ lock and can't be updated

  • Ошибка: 1100 SQLSTATE: HY000 (ER_TABLE_NOT_LOCKED )

    Сообщение: Table '%s' was not locked with LOCK TABLES

  • Ошибка: 1101 SQLSTATE: 42000 ( ER_BLOB_CANT_HAVE_DEFAULT)

    Сообщение: BLOB, TEXT, GEOMETRY or JSON column '%s' can't have a default value

  • Ошибка: 1102 SQLSTATE: 42000 (ER_WRONG_DB_NAME )

    Сообщение: Incorrect database name '%s'

  • Ошибка: 1103 SQLSTATE: 42000 (ER_WRONG_TABLE_NAME )

    Сообщение: Incorrect table name '%s'

  • Ошибка: 1104 SQLSTATE: 42000 (ER_TOO_BIG_SELECT )

    Сообщение: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay

  • Ошибка: 1105 SQLSTATE: HY000 (ER_UNKNOWN_ERROR )

    Сообщение: Unknown error

  • Ошибка: 1106 SQLSTATE: 42000 (ER_UNKNOWN_PROCEDURE )

    Сообщение: Unknown procedure '%s'

  • Ошибка: 1107 SQLSTATE: 42000 ( ER_WRONG_PARAMCOUNT_TO_PROCEDURE)

    Сообщение: Incorrect parameter count to procedure '%s'

  • Ошибка: 1108 SQLSTATE: HY000 ( ER_WRONG_PARAMETERS_TO_PROCEDURE)

    Сообщение: Incorrect parameters to procedure '%s'

  • Ошибка: 1109 SQLSTATE: 42S02 (ER_UNKNOWN_TABLE )

    Сообщение: Unknown table '%s' in %s

  • Ошибка: 1110 SQLSTATE: 42000 ( ER_FIELD_SPECIFIED_TWICE)

    Сообщение: Column '%s' specified twice

  • Ошибка: 1111 SQLSTATE: HY000 ( ER_INVALID_GROUP_FUNC_USE)

    Сообщение: Invalid use of group function

  • Ошибка: 1112 SQLSTATE: 42000 ( ER_UNSUPPORTED_EXTENSION)

    Сообщение: Table '%s' uses an extension that doesn't exist in this MySQL version

  • Ошибка: 1113 SQLSTATE: 42000 ( ER_TABLE_MUST_HAVE_COLUMNS)

    Сообщение: A table must have at least 1 column

  • Ошибка: 1114 SQLSTATE: HY000 (ER_RECORD_FILE_FULL )

    Сообщение: The table '%s' is full

    InnoDB возвращает эту ошибку, когда системное табличное пространство исчерпывает свободное пространство. Реконфигурируйте системное табличное пространство, чтобы добавить новый файл с данными.

  • Ошибка: 1115 SQLSTATE: 42000 ( ER_UNKNOWN_CHARACTER_SET)

    Сообщение: Unknown character set: '%s'

  • Ошибка: 1116 SQLSTATE: HY000 (ER_TOO_MANY_TABLES )

    Сообщение: Too many tables; MySQL can only use %d tables in a join

  • Ошибка: 1117 SQLSTATE: HY000 (ER_TOO_MANY_FIELDS )

    Сообщение: Too many columns

  • Ошибка: 1118 SQLSTATE: 42000 (ER_TOO_BIG_ROWSIZE )

    Сообщение: Row size too large. The maximum row size for the used table type, not counting BLOBs, is %ld. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

  • Ошибка: 1119 SQLSTATE: HY000 (ER_STACK_OVERRUN )

    Сообщение: Thread stack overrun: Used: %ld of a %ld stack. Use 'mysqld --thread_stack=#' to specify a bigger stack if needed

  • Ошибка: 1120 SQLSTATE: 42000 (ER_WRONG_OUTER_JOIN )

    Сообщение: Cross dependency found in OUTER JOIN; examine your ON conditions

  • Ошибка: 1121 SQLSTATE: 42000 ( ER_NULL_COLUMN_IN_INDEX)

    Сообщение: Table handler doesn't support NULL in given index. Please change column '%s' to be NOT NULL or use another handler

  • Ошибка: 1122 SQLSTATE: HY000 (ER_CANT_FIND_UDF )

    Сообщение: Can't load function '%s'

  • Ошибка: 1123 SQLSTATE: HY000 ( ER_CANT_INITIALIZE_UDF)

    Сообщение: Can't initialize function '%s'; %s

  • Ошибка: 1124 SQLSTATE: HY000 (ER_UDF_NO_PATHS)

    Сообщение: No paths allowed for shared library

  • Ошибка: 1125 SQLSTATE: HY000 (ER_UDF_EXISTS)

    Сообщение: Function '%s' already exists

  • Ошибка: 1126 SQLSTATE: HY000 (ER_CANT_OPEN_LIBRARY )

    Сообщение: Can't open shared library '%s' (errno: %d %s)

  • Ошибка: 1127 SQLSTATE: HY000 (ER_CANT_FIND_DL_ENTRY )

    Сообщение: Can't find symbol '%s' in library

  • Ошибка: 1128 SQLSTATE: HY000 ( ER_FUNCTION_NOT_DEFINED)

    Сообщение: Function '%s' is not defined

  • Ошибка: 1129 SQLSTATE: HY000 (ER_HOST_IS_BLOCKED )

    Сообщение: Host '%s' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

  • Ошибка: 1130 SQLSTATE: HY000 ( ER_HOST_NOT_PRIVILEGED)

    Сообщение: Host '%s' is not allowed to connect to this MySQL server

  • Ошибка: 1131 SQLSTATE: 42000 ( ER_PASSWORD_ANONYMOUS_USER)

    Сообщение: You are using MySQL as an anonymous user and anonymous users are not allowed to change passwords

  • Ошибка: 1132 SQLSTATE: 42000 ( ER_PASSWORD_NOT_ALLOWED)

    Сообщение: You must have privileges to update tables in the mysql database to be able to change passwords for others

  • Ошибка: 1133 SQLSTATE: 42000 (ER_PASSWORD_NO_MATCH )

    Сообщение: Can't find any matching row in the user table

  • Ошибка: 1134 SQLSTATE: HY000 (ER_UPDATE_INFO)

    Сообщение: Rows matched: %ld Changed: %ld Warnings: %ld

  • Ошибка: 1135 SQLSTATE: HY000 (ER_CANT_CREATE_THREAD )

    Сообщение: Can't create a new thread (errno %d); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug

  • Ошибка: 1136 SQLSTATE: 21S01 ( ER_WRONG_VALUE_COUNT_ON_ROW)

    Сообщение: Column count doesn't match value count at row %ld

  • Ошибка: 1137 SQLSTATE: HY000 (ER_CANT_REOPEN_TABLE )

    Сообщение: Can't reopen table: '%s'

  • Ошибка: 1138 SQLSTATE: 22004 ( ER_INVALID_USE_OF_NULL)

    Сообщение: Invalid use of NULL value

  • Ошибка: 1139 SQLSTATE: 42000 (ER_REGEXP_ERROR)

    Сообщение: Got error '%s' from regexp

  • Ошибка: 1140 SQLSTATE: 42000 ( ER_MIX_OF_GROUP_FUNC_AND_FIELDS)

    Сообщение: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

  • Ошибка: 1141 SQLSTATE: 42000 (ER_NONEXISTING_GRANT )

    Сообщение: There is no such grant defined for user '%s' on host '%s'

  • Ошибка: 1142 SQLSTATE: 42000 ( ER_TABLEACCESS_DENIED_ERROR)

    Сообщение: %s command denied to user '%s'@'%s' for table '%s'

  • Ошибка: 1143 SQLSTATE: 42000 ( ER_COLUMNACCESS_DENIED_ERROR)

    Сообщение: %s command denied to user '%s'@'%s' for column '%s' in table '%s'

  • Ошибка: 1144 SQLSTATE: 42000 ( ER_ILLEGAL_GRANT_FOR_TABLE)

    Сообщение: Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used

  • Ошибка: 1145 SQLSTATE: 42000 ( ER_GRANT_WRONG_HOST_OR_USER)

    Сообщение: The host or user argument to GRANT is too long

  • Ошибка: 1146 SQLSTATE: 42S02 (ER_NO_SUCH_TABLE )

    Сообщение: Table '%s.%s' doesn't exist

  • Ошибка: 1147 SQLSTATE: 42000 ( ER_NONEXISTING_TABLE_GRANT)

    Сообщение: There is no such grant defined for user '%s' on host '%s' on table '%s'

  • Ошибка: 1148 SQLSTATE: 42000 ( ER_NOT_ALLOWED_COMMAND)

    Сообщение: The used command is not allowed with this MySQL version

  • Ошибка: 1149 SQLSTATE: 42000 (ER_SYNTAX_ERROR)

    Сообщение: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use

  • Ошибка: 1152 SQLSTATE: 08S01 ( ER_ABORTING_CONNECTION)

    Сообщение: Aborted connection %ld to db: '%s' user: '%s' (%s)

  • Ошибка: 1153 SQLSTATE: 08S01 ( ER_NET_PACKET_TOO_LARGE)

    Сообщение: Got a packet bigger than 'max_allowed_packet' bytes

  • Ошибка: 1154 SQLSTATE: 08S01 ( ER_NET_READ_ERROR_FROM_PIPE)

    Сообщение: Got a read error from the connection pipe

  • Ошибка: 1155 SQLSTATE: 08S01 (ER_NET_FCNTL_ERROR )

    Сообщение: Got an error from fcntl()

  • Ошибка: 1156 SQLSTATE: 08S01 ( ER_NET_PACKETS_OUT_OF_ORDER)

    Сообщение: Got packets out of order

  • Ошибка: 1157 SQLSTATE: 08S01 ( ER_NET_UNCOMPRESS_ERROR)

    Сообщение: Couldn't uncompress communication packet

  • Ошибка: 1158 SQLSTATE: 08S01 (ER_NET_READ_ERROR )

    Сообщение: Got an error reading communication packets

  • Ошибка: 1159 SQLSTATE: 08S01 ( ER_NET_READ_INTERRUPTED)

    Сообщение: Got timeout reading communication packets

  • Ошибка: 1160 SQLSTATE: 08S01 (ER_NET_ERROR_ON_WRITE )

    Сообщение: Got an error writing communication packets

  • Ошибка: 1161 SQLSTATE: 08S01 ( ER_NET_WRITE_INTERRUPTED)

    Сообщение: Got timeout writing communication packets

  • Ошибка: 1162 SQLSTATE: 42000 (ER_TOO_LONG_STRING )

    Сообщение: Result string is longer than 'max_allowed_packet' bytes

  • Ошибка: 1163 SQLSTATE: 42000 ( ER_TABLE_CANT_HANDLE_BLOB)

    Сообщение: The used table type doesn't support BLOB/TEXT columns

  • Ошибка: 1164 SQLSTATE: 42000 ( ER_TABLE_CANT_HANDLE_AUTO_INCREMENT)

    Сообщение: The used table type doesn't support AUTO_INCREMENT columns

  • Ошибка: 1166 SQLSTATE: 42000 (ER_WRONG_COLUMN_NAME )

    Сообщение: Incorrect column name '%s'

  • Ошибка: 1167 SQLSTATE: 42000 (ER_WRONG_KEY_COLUMN )

    Сообщение: The used storage engine can't index column '%s'

  • Ошибка: 1168 SQLSTATE: HY000 (ER_WRONG_MRG_TABLE )

    Сообщение: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist

  • Ошибка: 1169 SQLSTATE: 23000 (ER_DUP_UNIQUE)

    Сообщение: Can't write, because of unique constraint, to table '%s'

  • Ошибка: 1170 SQLSTATE: 42000 ( ER_BLOB_KEY_WITHOUT_LENGTH)

    Сообщение: BLOB/TEXT column '%s' used in key specification without a key length

  • Ошибка: 1171 SQLSTATE: 42000 ( ER_PRIMARY_CANT_HAVE_NULL)

    Сообщение: All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead

  • Ошибка: 1172 SQLSTATE: 42000 (ER_TOO_MANY_ROWS )

    Сообщение: Result consisted of more than one row

  • Ошибка: 1173 SQLSTATE: 42000 ( ER_REQUIRES_PRIMARY_KEY)

    Сообщение: This table type requires a primary key

  • Ошибка: 1175 SQLSTATE: HY000 ( ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE)

    Сообщение: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

  • Ошибка: 1176 SQLSTATE: 42000 (ER_KEY_DOES_NOT_EXITS )

    Сообщение: Key '%s' doesn't exist in table '%s'

  • Ошибка: 1177 SQLSTATE: 42000 ( ER_CHECK_NO_SUCH_TABLE)

    Сообщение: Can't open table

  • Ошибка: 1178 SQLSTATE: 42000 ( ER_CHECK_NOT_IMPLEMENTED)

    Сообщение: The storage engine for the table doesn't support %s

  • Ошибка: 1179 SQLSTATE: 25000 ( ER_CANT_DO_THIS_DURING_AN_TRANSACTION)

    Сообщение: You are not allowed to execute this command in a transaction

  • Ошибка: 1180 SQLSTATE: HY000 ( ER_ERROR_DURING_COMMIT)

    Сообщение: Got error %d - '%s' during COMMIT

  • Ошибка: 1181 SQLSTATE: HY000 ( ER_ERROR_DURING_ROLLBACK)

    Сообщение: Got error %d - '%s' during ROLLBACK

  • Ошибка: 1182 SQLSTATE: HY000 ( ER_ERROR_DURING_FLUSH_LOGS)

    Сообщение: Got error %d during FLUSH_LOGS

  • Ошибка: 1184 SQLSTATE: 08S01 ( ER_NEW_ABORTING_CONNECTION)

    Сообщение: Aborted connection %u to db: '%s' user: '%s' host: '%s' (%s)

  • Ошибка: 1188 SQLSTATE: HY000 (ER_MASTER)

    Сообщение: Error from master: '%s'

  • Ошибка: 1189 SQLSTATE: 08S01 (ER_MASTER_NET_READ )

    Сообщение: Net error reading from master

  • Ошибка: 1190 SQLSTATE: 08S01 (ER_MASTER_NET_WRITE )

    Сообщение: Net error writing to master

  • Ошибка: 1191 SQLSTATE: HY000 ( ER_FT_MATCHING_KEY_NOT_FOUND)

    Сообщение: Can't find FULLTEXT index matching the column list

  • Ошибка: 1192 SQLSTATE: HY000 ( ER_LOCK_OR_ACTIVE_TRANSACTION)

    Сообщение: Can't execute the given command because you have active locked tables or an active transaction

  • Ошибка: 1193 SQLSTATE: HY000 ( ER_UNKNOWN_SYSTEM_VARIABLE)

    Сообщение: Unknown system variable '%s'

  • Ошибка: 1194 SQLSTATE: HY000 (ER_CRASHED_ON_USAGE)

    Сообщение: Table '%s' is marked as crashed and should be repaired

  • Ошибка: 1195 SQLSTATE: HY000 (ER_CRASHED_ON_REPAIR)

    Сообщение: Table '%s' is marked as crashed and last (automatic?) repair failed

  • Ошибка: 1196 SQLSTATE: HY000 (ER_WARNING_NOT_COMPLETE_ROLLBACK)

    Сообщение: Some non-transactional changed tables couldn't be rolled back

  • Ошибка: 1197 SQLSTATE: HY000 (ER_TRANS_CACHE_FULL)

    Сообщение: Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again

  • Ошибка: 1199 SQLSTATE: HY000 (ER_SLAVE_NOT_RUNNING)

    Сообщение: This operation requires a running slave; configure slave and do START SLAVE

  • Ошибка: 1200 SQLSTATE: HY000 (ER_BAD_SLAVE)

    Сообщение: The server is not configured as slave; fix in config file or with CHANGE MASTER TO

  • Ошибка: 1201 SQLSTATE: HY000 (ER_MASTER_INFO)

    Сообщение: Could not initialize master info structure; more error messages can be found in the MySQL error log

  • Ошибка: 1202 SQLSTATE: HY000 (ER_SLAVE_THREAD)

    Сообщение: Could not create slave thread; check system resources

  • Ошибка: 1203 SQLSTATE: 42000 (ER_TOO_MANY_USER_CONNECTIONS)

    Сообщение: User %s already has more than 'max_user_connections' active connections

  • Ошибка: 1204 SQLSTATE: HY000 (ER_SET_CONSTANTS_ONLY)

    Сообщение: You may only use constant expressions with SET

  • Ошибка: 1205 SQLSTATE: HY000 (ER_LOCK_WAIT_TIMEOUT )

    Сообщение: Lock wait timeout exceeded; try restarting transaction

    InnoDB выдает эту ошибку, когда блокировка ждет тайм-аут. Запрос, который ждал слишком долго, откатывается (не вся транзакция). Вы можете увеличить значение параметра конфигурации innodb_lock_wait_timeout, если запросы SQL должны ждать дольше других транзакций, чтобы завершиться, или уменьшить это, если слишком много продолжительных транзакций вызывают проблемы блокировки и сокращают параллелизм на занятой системе.

  • Ошибка: 1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL )

    Сообщение: The total number of locks exceeds the lock table size

    InnoDB выдает эту ошибку, когда общее количество блокировок превышает объем памяти, посвященный управлению блокировками. Чтобы избежать этой ошибки, увеличьте значение innodb_buffer_pool_size. В пределах отдельного приложения обходное решение может быть в том, чтобы разделить большую работу на мелкие кусочки. Например, если ошибка происходит для большого INSERT, выполните несколько меньших операций INSERT.

  • Ошибка: 1207 SQLSTATE: 25000 ( ER_READ_ONLY_TRANSACTION)

    Сообщение: Update locks cannot be acquired during a READ UNCOMMITTED transaction

  • Ошибка: 1210 SQLSTATE: HY000 (ER_WRONG_ARGUMENTS )

    Сообщение: Incorrect arguments to %s

  • Ошибка: 1211 SQLSTATE: 42000 ( ER_NO_PERMISSION_TO_CREATE_USER)

    Сообщение: '%s'@'%s' is not allowed to create new users

  • Ошибка: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK )

    Сообщение: Deadlock found when trying to get lock; try restarting transaction

    InnoDB выдает эту ошибку, когда транзакция сталкивается с тупиком и автоматически откатывается так, чтобы Ваше приложение могло принять меры по ликвидации последствий. Чтобы оправиться от этой ошибки, выполните все операции в этой транзакции снова. Тупик происходит, когда запросы о блокировках прибывают в непоследовательном порядке между транзакциями. Отмененная транзакция выпустила все свои блокировки, и другая может теперь получить все блокировки, которые просила. Таким образом, когда Вы запускаете повторно транзакцию, которая была отменена, ей, возможно, придется ждать других транзакций, чтобы завершиться, но как правило тупик не возвращается. Если Вы сталкиваетесь с частыми тупиками, сделайте последовательность из блокировки операций (LOCK TABLES, SELECT ... FOR UPDATE и т. п.) последовательно между различными транзакциями или приложениями, которые испытывают проблему. См. раздел 16.5.5.

  • Ошибка: 1214 SQLSTATE: HY000 ( ER_TABLE_CANT_HANDLE_FT)

    Сообщение: The used table type doesn't support FULLTEXT indexes

  • Ошибка: 1215 SQLSTATE: HY000 (ER_CANNOT_ADD_FOREIGN )

    Сообщение: Cannot add foreign key constraint

  • Ошибка: 1216 SQLSTATE: 23000 (ER_NO_REFERENCED_ROW )

    Сообщение: Cannot add or update a child row: a foreign key constraint fails

    InnoDB выдает эту ошибку, когда Вы пытаетесь добавить строку, но нет никакой родительской строки, и ограничения внешнего ключа терпят неудачу. Добавьте родительскую строку сначала.

  • Ошибка: 1217 SQLSTATE: 23000 ( ER_ROW_IS_REFERENCED)

    Сообщение: Cannot delete or update a parent row: a foreign key constraint fails

    InnoDB выдает эту ошибку, когда Вы пытаетесь удалить родительскую строку, у которой есть дочерние элементы, и ограничения внешнего ключа терпят неудачу. Удалите дочерние элементы сначала.

  • Ошибка: 1218 SQLSTATE: 08S01 (ER_CONNECT_TO_MASTER )

    Сообщение: Error connecting to master: %s

  • Ошибка: 1220 SQLSTATE: HY000 ( ER_ERROR_WHEN_EXECUTING_COMMAND)

    Сообщение: Error when executing command %s: %s

  • Ошибка: 1221 SQLSTATE: HY000 (ER_WRONG_USAGE )

    Сообщение: Incorrect usage of %s and %s

  • Ошибка: 1222 SQLSTATE: 21000 ( ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT)

    Сообщение: The used SELECT statements have a different number of columns

  • Ошибка: 1223 SQLSTATE: HY000 ( ER_CANT_UPDATE_WITH_READLOCK)

    Сообщение: Can't execute the query because you have a conflicting read lock

  • Ошибка: 1224 SQLSTATE: HY000 (ER_MIXING_NOT_ALLOWED)

    Сообщение: Mixing of transactional and non-transactional tables is disabled

  • Ошибка: 1225 SQLSTATE: HY000 (ER_DUP_ARGUMENT)

    Сообщение: Option '%s' used twice in statement

  • Ошибка: 1226 SQLSTATE: 42000 (ER_USER_LIMIT_REACHED)

    Сообщение: User '%s' has exceeded the '%s' resource (current value: %ld)

  • Ошибка: 1227 SQLSTATE: 42000 (ER_SPECIFIC_ACCESS_DENIED_ERROR)

    Сообщение: Access denied; you need (at least one of) the %s privilege(s) for this operation

  • Ошибка: 1228 SQLSTATE: HY000 (ER_LOCAL_VARIABLE)

    Сообщение: Variable '%s' is a SESSION variable and can't be used with SET GLOBAL

  • Ошибка: 1229 SQLSTATE: HY000 (ER_GLOBAL_VARIABLE)

    Сообщение: Variable '%s' is a GLOBAL variable and should be set with SET GLOBAL

  • Ошибка: 1230 SQLSTATE: 42000 (ER_NO_DEFAULT)

    Сообщение: Variable '%s' doesn't have a default value

  • Ошибка: 1231 SQLSTATE: 42000 (ER_WRONG_VALUE_FOR_VAR)

    Сообщение: Variable '%s' can't be set to the value of '%s'

  • Ошибка: 1232 SQLSTATE: 42000 (ER_WRONG_TYPE_FOR_VAR)

    Сообщение: Incorrect argument type to variable '%s'

  • Ошибка: 1233 SQLSTATE: HY000 (ER_VAR_CANT_BE_READ)

    Сообщение: Variable '%s' can only be set, not read

  • Ошибка: 1234 SQLSTATE: 42000 (ER_CANT_USE_OPTION_HERE)

    Сообщение: Incorrect usage/placement of '%s'

  • Ошибка: 1235 SQLSTATE: 42000 (ER_NOT_SUPPORTED_YET)

    Сообщение: This version of MySQL doesn't yet support '%s'

  • Ошибка: 1236 SQLSTATE: HY000 (ER_MASTER_FATAL_ERROR_READING_BINLOG)

    Сообщение: Got fatal error %d from master when reading data from binary log: '%s'

  • Ошибка: 1237 SQLSTATE: HY000 (ER_SLAVE_IGNORED_TABLE)

    Сообщение: Slave SQL thread ignored the query because of replicate-*-table rules

  • Ошибка: 1238 SQLSTATE: HY000 (ER_INCORRECT_GLOBAL_LOCAL_VAR)

    Сообщение: Variable '%s' is a %s variable

  • Ошибка: 1239 SQLSTATE: 42000 (ER_WRONG_FK_DEF)

    Сообщение: Incorrect foreign key definition for '%s': %s

  • Ошибка: 1240 SQLSTATE: HY000 (ER_KEY_REF_DO_NOT_MATCH_TABLE_REF)

    Сообщение: Key reference and table reference don't match

  • Ошибка: 1241 SQLSTATE: 21000 (ER_OPERAND_COLUMNS)

    Сообщение: Operand should contain %d column(s)

  • Ошибка: 1242 SQLSTATE: 21000 (ER_SUBQUERY_NO_1_ROW)

    Сообщение: Subquery returns more than 1 row

  • Ошибка: 1243 SQLSTATE: HY000 (ER_UNKNOWN_STMT_HANDLER)

    Сообщение: Unknown prepared statement handler (%.*s) given to %s

  • Ошибка: 1244 SQLSTATE: HY000 (ER_CORRUPT_HELP_DB)

    Сообщение: Help database is corrupt or does not exist

  • Ошибка: 1246 SQLSTATE: HY000 (ER_AUTO_CONVERT)

    Сообщение: Converting column '%s' from %s to %s

  • Ошибка: 1247 SQLSTATE: 42S22 (ER_ILLEGAL_REFERENCE)

    Сообщение: Reference '%s' not supported (%s)

  • Ошибка: 1248 SQLSTATE: 42000 (ER_DERIVED_MUST_HAVE_ALIAS)

    Сообщение: Every derived table must have its own alias

  • Ошибка: 1249 SQLSTATE: 01000 (ER_SELECT_REDUCED)

    Сообщение: Select %u was reduced during optimization

  • Ошибка: 1250 SQLSTATE: 42000 (ER_TABLENAME_NOT_ALLOWED_HERE)

    Сообщение: Table '%s' from one of the SELECTs cannot be used in %s

  • Ошибка: 1251 SQLSTATE: 08004 (ER_NOT_SUPPORTED_AUTH_MODE)

    Сообщение: Client does not support authentication protocol requested by server; consider upgrading MySQL client

  • Ошибка: 1252 SQLSTATE: 42000 (ER_SPATIAL_CANT_HAVE_NULL)

    Сообщение: All parts of a SPATIAL index must be NOT NULL

  • Ошибка: 1253 SQLSTATE: 42000 (ER_COLLATION_CHARSET_MISMATCH)

    Сообщение: COLLATION '%s' is not valid for CHARACTER SET '%s'

  • Ошибка: 1256 SQLSTATE: HY000 (ER_TOO_BIG_FOR_UNCOMPRESS)

    Сообщение: Uncompressed data size too large; the maximum size is %d (probably, length of uncompressed data was corrupted)

  • Ошибка: 1257 SQLSTATE: HY000 (ER_ZLIB_Z_MEM_ERROR)

    Сообщение: ZLIB: Not enough memory

  • Ошибка: 1258 SQLSTATE: HY000 (ER_ZLIB_Z_BUF_ERROR)

    Сообщение: ZLIB: Not enough room in the output buffer (probably, length of uncompressed data was corrupted)

  • Ошибка: 1259 SQLSTATE: HY000 (ER_ZLIB_Z_DATA_ERROR)

    Сообщение: ZLIB: Input data corrupted

  • Ошибка: 1260 SQLSTATE: HY000 (ER_CUT_VALUE_GROUP_CONCAT)

    Сообщение: Row %u was cut by GROUP_CONCAT()

  • Ошибка: 1261 SQLSTATE: 01000 (ER_WARN_TOO_FEW_RECORDS)

    Сообщение: Row %ld doesn't contain data for all columns

  • Ошибка: 1262 SQLSTATE: 01000 (ER_WARN_TOO_MANY_RECORDS)

    Сообщение: Row %ld was truncated; it contained more data than there were input columns

  • Ошибка: 1263 SQLSTATE: 22004 (ER_WARN_NULL_TO_NOTNULL)

    Сообщение: Column set to default value; NULL supplied to NOT NULL column '%s' at row %ld

  • Ошибка: 1264 SQLSTATE: 22003 (ER_WARN_DATA_OUT_OF_RANGE)

    Сообщение: Out of range value for column '%s' at row %ld

  • Ошибка: 1265 SQLSTATE: 01000 (WARN_DATA_TRUNCATED)

    Сообщение: Data truncated for column '%s' at row %ld

  • Ошибка: 1266 SQLSTATE: HY000 (ER_WARN_USING_OTHER_HANDLER)

    Сообщение: Using storage engine %s for table '%s'

  • Ошибка: 1267 SQLSTATE: HY000 (ER_CANT_AGGREGATE_2COLLATIONS)

    Сообщение: Illegal mix of collations (%s,%s) and (%s,%s) for operation '%s'

  • Ошибка: 1269 SQLSTATE: HY000 (ER_REVOKE_GRANTS)

    Сообщение: Can't revoke all privileges for one or more of the requested users

  • Ошибка: 1270 SQLSTATE: HY000 (ER_CANT_AGGREGATE_3COLLATIONS)

    Сообщение: Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'

  • Ошибка: 1271 SQLSTATE: HY000 (ER_CANT_AGGREGATE_NCOLLATIONS)

    Сообщение: Illegal mix of collations for operation '%s'

  • Ошибка: 1272 SQLSTATE: HY000 (ER_VARIABLE_IS_NOT_STRUCT)

    Сообщение: Variable '%s' is not a variable component (can't be used as XXXX.variable_name)

  • Ошибка: 1273 SQLSTATE: HY000 (ER_UNKNOWN_COLLATION)

    Сообщение: Unknown collation: '%s'

  • Ошибка: 1274 SQLSTATE: HY000 (ER_SLAVE_IGNORED_SSL_PARAMS)

    Сообщение: SSL parameters in CHANGE MASTER are ignored because this MySQL slave was compiled without SSL support; they can be used later if MySQL slave with SSL is started

  • Ошибка: 1275 SQLSTATE: HY000 (ER_SERVER_IS_IN_SECURE_AUTH_MODE)

    Сообщение: Server is running in --secure-auth mode, but '%s'@'%s' has a password in the old format; please change the password to the new format

  • Ошибка: 1276 SQLSTATE: HY000 (ER_WARN_FIELD_RESOLVED)

    Сообщение: Field or reference '%s%s%s%s%s' of SELECT #%d was resolved in SELECT #%d

  • Ошибка: 1277 SQLSTATE: HY000 (ER_BAD_SLAVE_UNTIL_COND)

    Сообщение: Incorrect parameter or combination of parameters for START SLAVE UNTIL

  • Ошибка: 1278 SQLSTATE: HY000 (ER_MISSING_SKIP_SLAVE)

    Сообщение: It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart

  • Ошибка: 1279 SQLSTATE: HY000 (ER_UNTIL_COND_IGNORED)

    Сообщение: SQL thread is not to be started so UNTIL options are ignored

  • Ошибка: 1280 SQLSTATE: 42000 (ER_WRONG_NAME_FOR_INDEX)

    Сообщение: Incorrect index name '%s'

  • Ошибка: 1281 SQLSTATE: 42000 (ER_WRONG_NAME_FOR_CATALOG)

    Сообщение: Incorrect catalog name '%s'

  • Ошибка: 1282 SQLSTATE: HY000 (ER_WARN_QC_RESIZE)

    Сообщение: Query cache failed to set size %lu; new query cache size is %lu

  • Ошибка: 1283 SQLSTATE: HY000 (ER_BAD_FT_COLUMN)

    Сообщение: Column '%s' cannot be part of FULLTEXT index

  • Ошибка: 1284 SQLSTATE: HY000 (ER_UNKNOWN_KEY_CACHE)

    Сообщение: Unknown key cache '%s'

  • Ошибка: 1285 SQLSTATE: HY000 (ER_WARN_HOSTNAME_WONT_WORK)

    Сообщение: MySQL is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work

  • Ошибка: 1286 SQLSTATE: 42000 (ER_UNKNOWN_STORAGE_ENGINE)

    Сообщение: Unknown storage engine '%s'

  • Ошибка: 1287 SQLSTATE: HY000 (ER_WARN_DEPRECATED_SYNTAX)

    Сообщение: '%s' is deprecated and will be removed in a future release. Please use %s instead

  • Ошибка: 1288 SQLSTATE: HY000 (ER_NON_UPDATABLE_TABLE)

    Сообщение: The target table %s of the %s is not updatable

  • Ошибка: 1289 SQLSTATE: HY000 (ER_FEATURE_DISABLED)

    Сообщение: The '%s' feature is disabled; you need MySQL built with '%s' to have it working

  • Ошибка: 1290 SQLSTATE: HY000 (ER_OPTION_PREVENTS_STATEMENT)

    Сообщение: The MySQL server is running with the %s option so it cannot execute this statement

  • Ошибка: 1291 SQLSTATE: HY000 (ER_DUPLICATED_VALUE_IN_TYPE)

    Сообщение: Column '%s' has duplicated value '%s' in %s

  • Ошибка: 1292 SQLSTATE: 22007 (ER_TRUNCATED_WRONG_VALUE)

    Сообщение: Truncated incorrect %s value: '%s'

  • Ошибка: 1294 SQLSTATE: HY000 (ER_INVALID_ON_UPDATE)

    Сообщение: Invalid ON UPDATE clause for '%s' column

  • Ошибка: 1295 SQLSTATE: HY000 (ER_UNSUPPORTED_PS)

    Сообщение: This command is not supported in the prepared statement protocol yet

  • Ошибка: 1296 SQLSTATE: HY000 (ER_GET_ERRMSG)

    Сообщение: Got error %d '%s' from %s

  • Ошибка: 1297 SQLSTATE: HY000 (ER_GET_TEMPORARY_ERRMSG)

    Сообщение: Got temporary error %d '%s' from %s

  • Ошибка: 1298 SQLSTATE: HY000 (ER_UNKNOWN_TIME_ZONE)

    Сообщение: Unknown or incorrect time zone: '%s'

  • Ошибка: 1299 SQLSTATE: HY000 (ER_WARN_INVALID_TIMESTAMP)

    Сообщение: Invalid TIMESTAMP value in column '%s' at row %ld

  • Ошибка: 1300 SQLSTATE: HY000 (ER_INVALID_CHARACTER_STRING)

    Сообщение: Invalid %s character string: '%s'

  • Ошибка: 1301 SQLSTATE: HY000 (ER_WARN_ALLOWED_PACKET_OVERFLOWED)

    Сообщение: Result of %s() was larger than max_allowed_packet (%ld) - truncated

  • Ошибка: 1302 SQLSTATE: HY000 (ER_CONFLICTING_DECLARATIONS)

    Сообщение: Conflicting declarations: '%s%s' and '%s%s'

  • Ошибка: 1303 SQLSTATE: 2F003 (ER_SP_NO_RECURSIVE_CREATE)

    Сообщение: Can't create a %s from within another stored routine

  • Ошибка: 1304 SQLSTATE: 42000 (ER_SP_ALREADY_EXISTS)

    Сообщение: %s %s already exists

  • Ошибка: 1305 SQLSTATE: 42000 (ER_SP_DOES_NOT_EXIST)

    Сообщение: %s %s does not exist

  • Ошибка: 1306 SQLSTATE: HY000 (ER_SP_DROP_FAILED)

    Сообщение: Failed to DROP %s %s

  • Ошибка: 1307 SQLSTATE: HY000 (ER_SP_STORE_FAILED)

    Сообщение: Failed to CREATE %s %s

  • Ошибка: 1308 SQLSTATE: 42000 (ER_SP_LILABEL_MISMATCH)

    Сообщение: %s with no matching label: %s

  • Ошибка: 1309 SQLSTATE: 42000 (ER_SP_LABEL_REDEFINE)

    Сообщение: Redefining label %s

  • Ошибка: 1310 SQLSTATE: 42000 (ER_SP_LABEL_MISMATCH)

    Сообщение: End-label %s without match

  • Ошибка: 1311 SQLSTATE: 01000 (ER_SP_UNINIT_VAR)

    Сообщение: Referring to uninitialized variable %s

  • Ошибка: 1312 SQLSTATE: 0A000 (ER_SP_BADSELECT)

    Сообщение: PROCEDURE %s can't return a result set in the given context

  • Ошибка: 1313 SQLSTATE: 42000 (ER_SP_BADRETURN)

    Сообщение: RETURN is only allowed in a FUNCTION

  • Ошибка: 1314 SQLSTATE: 0A000 (ER_SP_BADSTATEMENT)

    Сообщение: %s is not allowed in stored procedures

  • Ошибка: 1315 SQLSTATE: 42000 (ER_UPDATE_LOG_DEPRECATED_IGNORED)

    Сообщение: The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored.

  • Ошибка: 1316 SQLSTATE: 42000 (ER_UPDATE_LOG_DEPRECATED_TRANSLATED)

    Сообщение: The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been translated to SET SQL_LOG_BIN.

  • Ошибка: 1317 SQLSTATE: 70100 (ER_QUERY_INTERRUPTED)

    Сообщение: Query execution was interrupted

  • Ошибка: 1318 SQLSTATE: 42000 (ER_SP_WRONG_NO_OF_ARGS)

    Сообщение: Incorrect number of arguments for %s %s; expected %u, got %u

  • Ошибка: 1319 SQLSTATE: 42000 (ER_SP_COND_MISMATCH)

    Сообщение: Undefined CONDITION: %s

  • Ошибка: 1320 SQLSTATE: 42000 (ER_SP_NORETURN)

    Сообщение: No RETURN found in FUNCTION %s

  • Ошибка: 1321 SQLSTATE: 2F005 (ER_SP_NORETURNEND)

    Сообщение: FUNCTION %s ended without RETURN

  • Ошибка: 1322 SQLSTATE: 42000 (ER_SP_BAD_CURSOR_QUERY)

    Сообщение: Cursor statement must be a SELECT

  • Ошибка: 1323 SQLSTATE: 42000 (ER_SP_BAD_CURSOR_SELECT)

    Сообщение: Cursor SELECT must not have INTO

  • Ошибка: 1324 SQLSTATE: 42000 (ER_SP_CURSOR_MISMATCH)

    Сообщение: Undefined CURSOR: %s

  • Ошибка: 1325 SQLSTATE: 24000 (ER_SP_CURSOR_ALREADY_OPEN)

    Сообщение: Cursor is already open

  • Ошибка: 1326 SQLSTATE: 24000 (ER_SP_CURSOR_NOT_OPEN)

    Сообщение: Cursor is not open

  • Ошибка: 1327 SQLSTATE: 42000 (ER_SP_UNDECLARED_VAR)

    Сообщение: Undeclared variable: %s

  • Ошибка: 1328 SQLSTATE: HY000 (ER_SP_WRONG_NO_OF_FETCH_ARGS)

    Сообщение: Incorrect number of FETCH variables

  • Ошибка: 1329 SQLSTATE: 02000 (ER_SP_FETCH_NO_DATA)

    Сообщение: No data - zero rows fetched, selected, or processed

  • Ошибка: 1330 SQLSTATE: 42000 (ER_SP_DUP_PARAM)

    Сообщение: Duplicate parameter: %s

  • Ошибка: 1331 SQLSTATE: 42000 (ER_SP_DUP_VAR)

    Сообщение: Duplicate variable: %s

  • Ошибка: 1332 SQLSTATE: 42000 (ER_SP_DUP_COND)

    Сообщение: Duplicate condition: %s

  • Ошибка: 1333 SQLSTATE: 42000 (ER_SP_DUP_CURS)

    Сообщение: Duplicate cursor: %s

  • Ошибка: 1334 SQLSTATE: HY000 (ER_SP_CANT_ALTER)

    Сообщение: Failed to ALTER %s %s

  • Ошибка: 1335 SQLSTATE: 0A000 (ER_SP_SUBSELECT_NYI)

    Сообщение: Subquery value not supported

  • Ошибка: 1336 SQLSTATE: 0A000 (ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG)

    Сообщение: %s is not allowed in stored function or trigger

  • Ошибка: 1337 SQLSTATE: 42000 (ER_SP_VARCOND_AFTER_CURSHNDLR)

    Сообщение: Variable or condition declaration after cursor or handler declaration

  • Ошибка: 1338 SQLSTATE: 42000 (ER_SP_CURSOR_AFTER_HANDLER)

    Сообщение: Cursor declaration after handler declaration

  • Ошибка: 1339 SQLSTATE: 20000 (ER_SP_CASE_NOT_FOUND)

    Сообщение: Case not found for CASE statement

  • Ошибка: 1340 SQLSTATE: HY000 (ER_FPARSER_TOO_BIG_FILE)

    Сообщение: Configuration file '%s' is too big

  • Ошибка: 1341 SQLSTATE: HY000 (ER_FPARSER_BAD_HEADER)

    Сообщение: Malformed file type header in file '%s'

  • Ошибка: 1342 SQLSTATE: HY000 (ER_FPARSER_EOF_IN_COMMENT)

    Сообщение: Unexpected end of file while parsing comment '%s'

  • Ошибка: 1343 SQLSTATE: HY000 (ER_FPARSER_ERROR_IN_PARAMETER)

    Сообщение: Error while parsing parameter '%s' (line: '%s')

  • Ошибка: 1344 SQLSTATE: HY000 (ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER)

    Сообщение: Unexpected end of file while skipping unknown parameter '%s'

  • Ошибка: 1345 SQLSTATE: HY000 (ER_VIEW_NO_EXPLAIN)

    Сообщение: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table

  • Ошибка: 1347 SQLSTATE: HY000 (ER_WRONG_OBJECT )

    Сообщение: '%s.%s' is not %s

    Названный объект является неправильным для типа предпринятой работы. Это должен быть объект названного типа. Пример: HANDLER OPEN требует базовой таблицы, а не ее представления. Это терпит неудачу если предпринято на таблице INFORMATION_SCHEMA, которая осуществлена как представление таблицы словаря данных.

  • Ошибка: 1348 SQLSTATE: HY000 (ER_NONUPDATEABLE_COLUMN)

    Сообщение: Column '%s' is not updatable

  • Ошибка: 1350 SQLSTATE: HY000 (ER_VIEW_SELECT_CLAUSE)

    Сообщение: View's SELECT contains a '%s' clause

  • Ошибка: 1351 SQLSTATE: HY000 (ER_VIEW_SELECT_VARIABLE)

    Сообщение: View's SELECT contains a variable or parameter

  • Ошибка: 1352 SQLSTATE: HY000 (ER_VIEW_SELECT_TMPTABLE)

    Сообщение: View's SELECT refers to a temporary table '%s'

  • Ошибка: 1353 SQLSTATE: HY000 (ER_VIEW_WRONG_LIST)

    Сообщение: View's SELECT and view's field list have different column counts

  • Ошибка: 1354 SQLSTATE: HY000 (ER_WARN_VIEW_MERGE)

    Сообщение: View merge algorithm can't be used here for now (assumed undefined algorithm)

  • Ошибка: 1355 SQLSTATE: HY000 (ER_WARN_VIEW_WITHOUT_KEY)

    Сообщение: View being updated does not have complete key of underlying table in it

  • Ошибка: 1356 SQLSTATE: HY000 (ER_VIEW_INVALID)

    Сообщение: View '%s.%s' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

  • Ошибка: 1357 SQLSTATE: HY000 (ER_SP_NO_DROP_SP)

    Сообщение: Can't drop or alter a %s from within another stored routine

  • Ошибка: 1359 SQLSTATE: HY000 (ER_TRG_ALREADY_EXISTS)

    Сообщение: Trigger already exists

  • Ошибка: 1360 SQLSTATE: HY000 (ER_TRG_DOES_NOT_EXIST)

    Сообщение: Trigger does not exist

  • Ошибка: 1361 SQLSTATE: HY000 (ER_TRG_ON_VIEW_OR_TEMP_TABLE)

    Сообщение: Trigger's '%s' is view or temporary table

  • Ошибка: 1362 SQLSTATE: HY000 (ER_TRG_CANT_CHANGE_ROW)

    Сообщение: Updating of %s row is not allowed in %strigger

  • Ошибка: 1363 SQLSTATE: HY000 (ER_TRG_NO_SUCH_ROW_IN_TRG)

    Сообщение: There is no %s row in %s trigger

  • Ошибка: 1364 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_FIELD)

    Сообщение: Field '%s' doesn't have a default value

  • Ошибка: 1365 SQLSTATE: 22012 (ER_DIVISION_BY_ZERO)

    Сообщение: Division by 0

  • Ошибка: 1366 SQLSTATE: HY000 (ER_TRUNCATED_WRONG_VALUE_FOR_FIELD)

    Сообщение: Incorrect %s value: '%s' for column '%s' at row %ld

  • Ошибка: 1367 SQLSTATE: 22007 (ER_ILLEGAL_VALUE_FOR_TYPE)

    Сообщение: Illegal %s '%s' value found during parsing

  • Ошибка: 1368 SQLSTATE: HY000 (ER_VIEW_NONUPD_CHECK)

    Сообщение: CHECK OPTION on non-updatable view '%s.%s'

  • Ошибка: 1369 SQLSTATE: HY000 (ER_VIEW_CHECK_FAILED)

    Сообщение: CHECK OPTION failed '%s.%s'

  • Ошибка: 1370 SQLSTATE: 42000 (ER_PROCACCESS_DENIED_ERROR)

    Сообщение: %s command denied to user '%s'@'%s' for routine '%s'

  • Ошибка: 1371 SQLSTATE: HY000 (ER_RELAY_LOG_FAIL)

    Сообщение: Failed purging old relay logs: %s

  • Ошибка: 1373 SQLSTATE: HY000 (ER_UNKNOWN_TARGET_BINLOG)

    Сообщение: Target log not found in binlog index

  • Ошибка: 1374 SQLSTATE: HY000 (ER_IO_ERR_LOG_INDEX_READ)

    Сообщение: I/O error reading log index file

  • Ошибка: 1375 SQLSTATE: HY000 (ER_BINLOG_PURGE_PROHIBITED)

    Сообщение: Server configuration does not permit binlog purge

  • Ошибка: 1376 SQLSTATE: HY000 (ER_FSEEK_FAIL)

    Сообщение: Failed on fseek()

  • Ошибка: 1377 SQLSTATE: HY000 (ER_BINLOG_PURGE_FATAL_ERR)

    Сообщение: Fatal error during log purge

  • Ошибка: 1378 SQLSTATE: HY000 (ER_LOG_IN_USE)

    Сообщение: A purgeable log is in use, will not purge

  • Ошибка: 1379 SQLSTATE: HY000 (ER_LOG_PURGE_UNKNOWN_ERR)

    Сообщение: Unknown error during log purge

  • Ошибка: 1380 SQLSTATE: HY000 (ER_RELAY_LOG_INIT)

    Сообщение: Failed initializing relay log position: %s

  • Ошибка: 1381 SQLSTATE: HY000 (ER_NO_BINARY_LOGGING)

    Сообщение: You are not using binary logging

  • Ошибка: 1382 SQLSTATE: HY000 (ER_RESERVED_SYNTAX)

    Сообщение: The '%s' syntax is reserved for purposes internal to the MySQL server

  • Ошибка: 1390 SQLSTATE: HY000 (ER_PS_MANY_PARAM)

    Сообщение: Prepared statement contains too many placeholders

  • Ошибка: 1391 SQLSTATE: HY000 (ER_KEY_PART_0)

    Сообщение: Key part '%s' length cannot be 0

  • Ошибка: 1392 SQLSTATE: HY000 (ER_VIEW_CHECKSUM)

    Сообщение: View text checksum failed

  • Ошибка: 1393 SQLSTATE: HY000 (ER_VIEW_MULTIUPDATE)

    Сообщение: Can not modify more than one base table through a join view '%s.%s'

  • Ошибка: 1394 SQLSTATE: HY000 (ER_VIEW_NO_INSERT_FIELD_LIST)

    Сообщение: Can not insert into join view '%s.%s' without fields list

  • Ошибка: 1395 SQLSTATE: HY000 (ER_VIEW_DELETE_MERGE_VIEW)

    Сообщение: Can not delete from join view '%s.%s'

  • Ошибка: 1396 SQLSTATE: HY000 (ER_CANNOT_USER)

    Сообщение: Operation %s failed for %s

  • Ошибка: 1397 SQLSTATE: XAE04 (ER_XAER_NOTA)

    Сообщение: XAER_NOTA: Unknown XID

  • Ошибка: 1398 SQLSTATE: XAE05 (ER_XAER_INVAL)

    Сообщение: XAER_INVAL: Invalid arguments (or unsupported command)

  • Ошибка: 1399 SQLSTATE: XAE07 (ER_XAER_RMFAIL)

    Сообщение: XAER_RMFAIL: The command cannot be executed when global transaction is in the %s state

  • Ошибка: 1400 SQLSTATE: XAE09 (ER_XAER_OUTSIDE)

    Сообщение: XAER_OUTSIDE: Some work is done outside global transaction

  • Ошибка: 1401 SQLSTATE: XAE03 (ER_XAER_RMERR)

    Сообщение: XAER_RMERR: Fatal error occurred in the transaction branch - check your data for consistency

  • Ошибка: 1402 SQLSTATE: XA100 (ER_XA_RBROLLBACK)

    Сообщение: XA_RBROLLBACK: Transaction branch was rolled back

  • Ошибка: 1403 SQLSTATE: 42000 (ER_NONEXISTING_PROC_GRANT)

    Сообщение: There is no such grant defined for user '%s' on host '%s' on routine '%s'

  • Ошибка: 1404 SQLSTATE: HY000 (ER_PROC_AUTO_GRANT_FAIL)

    Сообщение: Failed to grant EXECUTE and ALTER ROUTINE privileges

  • Ошибка: 1405 SQLSTATE: HY000 (ER_PROC_AUTO_REVOKE_FAIL)

    Сообщение: Failed to revoke all privileges to dropped routine

  • Ошибка: 1406 SQLSTATE: 22001 (ER_DATA_TOO_LONG)

    Сообщение: Data too long for column '%s' at row %ld

  • Ошибка: 1407 SQLSTATE: 42000 (ER_SP_BAD_SQLSTATE)

    Сообщение: Bad SQLSTATE: '%s'

  • Ошибка: 1408 SQLSTATE: HY000 (ER_STARTUP)

    Сообщение: %s: ready for connections. Version: '%s' socket: '%s' port: %d %s

  • Ошибка: 1409 SQLSTATE: HY000 (ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR)

    Сообщение: Can't load value from file with fixed size rows to variable

  • Ошибка: 1410 SQLSTATE: 42000 (ER_CANT_CREATE_USER_WITH_GRANT)

    Сообщение: You are not allowed to create a user with GRANT

  • Ошибка: 1411 SQLSTATE: HY000 (ER_WRONG_VALUE_FOR_TYPE)

    Сообщение: Incorrect %s value: '%s' for function %s

  • Ошибка: 1412 SQLSTATE: HY000 (ER_TABLE_DEF_CHANGED)

    Сообщение: Table definition has changed, please retry transaction

  • Ошибка: 1413 SQLSTATE: 42000 (ER_SP_DUP_HANDLER)

    Сообщение: Duplicate handler declared in the same block

  • Ошибка: 1414 SQLSTATE: 42000 (ER_SP_NOT_VAR_ARG)

    Сообщение: OUT or INOUT argument %d for routine %s is not a variable or NEW pseudo-variable in BEFORE trigger

  • Ошибка: 1415 SQLSTATE: 0A000 (ER_SP_NO_RETSET)

    Сообщение: Not allowed to return a result set from a %s

  • Ошибка: 1416 SQLSTATE: 22003 (ER_CANT_CREATE_GEOMETRY_OBJECT)

    Сообщение: Cannot get geometry object from data you send to the GEOMETRY field

  • Ошибка: 1418 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_ROUTINE)

    Сообщение: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

  • Ошибка: 1419 SQLSTATE: HY000 (ER_BINLOG_CREATE_ROUTINE_NEED_SUPER)

    Сообщение: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

  • Ошибка: 1421 SQLSTATE: HY000 (ER_STMT_HAS_NO_OPEN_CURSOR)

    Сообщение: The statement (%lu) has no open cursor.

  • Ошибка: 1422 SQLSTATE: HY000 (ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG)

    Сообщение: Explicit or implicit commit is not allowed in stored function or trigger.

  • Ошибка: 1423 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_VIEW_FIELD)

    Сообщение: Field of view '%s.%s' underlying table doesn't have a default value

  • Ошибка: 1424 SQLSTATE: HY000 (ER_SP_NO_RECURSION)

    Сообщение: Recursive stored functions and triggers are not allowed.

  • Ошибка: 1425 SQLSTATE: 42000 (ER_TOO_BIG_SCALE)

    Сообщение: Too big scale %d specified for column '%s'. Maximum is %lu.

  • Ошибка: 1426 SQLSTATE: 42000 (ER_TOO_BIG_PRECISION)

    Сообщение: Too-big precision %d specified for '%s'. Maximum is %lu.

  • Ошибка: 1427 SQLSTATE: 42000 (ER_M_BIGGER_THAN_D)

    Сообщение: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '%s').

  • Ошибка: 1428 SQLSTATE: HY000 (ER_WRONG_LOCK_OF_SYSTEM_TABLE)

    Сообщение: You can't combine write-locking of system tables with other tables or lock types

  • Ошибка: 1429 SQLSTATE: HY000 (ER_CONNECT_TO_FOREIGN_DATA_SOURCE)

    Сообщение: Unable to connect to foreign data source: %s

  • Ошибка: 1430 SQLSTATE: HY000 (ER_QUERY_ON_FOREIGN_DATA_SOURCE)

    Сообщение: There was a problem processing the query on the foreign data source. Data source error: %s

  • Ошибка: 1431 SQLSTATE: HY000 (ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST)

    Сообщение: The foreign data source you are trying to reference does not exist. Data source error: %s

  • Ошибка: 1432 SQLSTATE: HY000 (ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE)

    Сообщение: Can't create federated table. The data source connection string '%s' is not in the correct format

  • Ошибка: 1433 SQLSTATE: HY000 (ER_FOREIGN_DATA_STRING_INVALID)

    Сообщение: The data source connection string '%s' is not in the correct format

  • Ошибка: 1435 SQLSTATE: HY000 (ER_TRG_IN_WRONG_SCHEMA)

    Сообщение: Trigger in wrong schema

  • Ошибка: 1436 SQLSTATE: HY000 (ER_STACK_OVERRUN_NEED_MORE)

    Сообщение: Thread stack overrun: %ld bytes used of a %ld byte stack, and %ld bytes needed. Use 'mysqld --thread_stack=#' to specify a bigger stack.

  • Ошибка: 1437 SQLSTATE: 42000 (ER_TOO_LONG_BODY)

    Сообщение: Routine body for '%s' is too long

  • Ошибка: 1438 SQLSTATE: HY000 (ER_WARN_CANT_DROP_DEFAULT_KEYCACHE)

    Сообщение: Cannot drop default keycache

  • Ошибка: 1439 SQLSTATE: 42000 (ER_TOO_BIG_DISPLAYWIDTH)

    Сообщение: Display width out of range for column '%s' (max = %lu)

  • Ошибка: 1440 SQLSTATE: XAE08 (ER_XAER_DUPID)

    Сообщение: XAER_DUPID: The XID already exists

  • Ошибка: 1441 SQLSTATE: 22008 (ER_DATETIME_FUNCTION_OVERFLOW)

    Сообщение: Datetime function: %s field overflow

  • Ошибка: 1442 SQLSTATE: HY000 (ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG)

    Сообщение: Can't update table '%s' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

  • Ошибка: 1443 SQLSTATE: HY000 (ER_VIEW_PREVENT_UPDATE)

    Сообщение: The definition of table '%s' prevents operation %s on table '%s'.

  • Ошибка: 1444 SQLSTATE: HY000 (ER_PS_NO_RECURSION)

    Сообщение: The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner

  • Ошибка: 1445 SQLSTATE: HY000 (ER_SP_CANT_SET_AUTOCOMMIT)

    Сообщение: Not allowed to set autocommit from a stored function or trigger

  • Ошибка: 1447 SQLSTATE: HY000 (ER_VIEW_FRM_NO_USER)

    Сообщение: View '%s'.'%s' has no definer information (old table format). Current user is used as definer. Please recreate the view!

  • Ошибка: 1448 SQLSTATE: HY000 (ER_VIEW_OTHER_USER)

    Сообщение: You need the SUPER privilege for creation view with '%s'@'%s' definer

  • Ошибка: 1449 SQLSTATE: HY000 (ER_NO_SUCH_USER)

    Сообщение: The user specified as a definer ('%s'@'%s') does not exist

  • Ошибка: 1450 SQLSTATE: HY000 (ER_FORBID_SCHEMA_CHANGE)

    Сообщение: Changing schema from '%s' to '%s' is not allowed.

  • Ошибка: 1451 SQLSTATE: 23000 (ER_ROW_IS_REFERENCED_2)

    Сообщение: Cannot delete or update a parent row: a foreign key constraint fails (%s)

  • Ошибка: 1452 SQLSTATE: 23000 (ER_NO_REFERENCED_ROW_2)

    Сообщение: Cannot add or update a child row: a foreign key constraint fails (%s)

  • Ошибка: 1453 SQLSTATE: 42000 (ER_SP_BAD_VAR_SHADOW)

    Сообщение: Variable '%s' must be quoted with `...`, or renamed

  • Ошибка: 1454 SQLSTATE: HY000 (ER_TRG_NO_DEFINER)

    Сообщение: No definer attribute for trigger '%s'.'%s'. It's disallowed to create trigger without definer.

  • Ошибка: 1455 SQLSTATE: HY000 (ER_OLD_FILE_FORMAT)

    Сообщение: '%s' has an old format, you should re-create the '%s' object(s)

  • Ошибка: 1456 SQLSTATE: HY000 (ER_SP_RECURSION_LIMIT)

    Сообщение: Recursive limit %d (as set by the max_sp_recursion_depth variable) was exceeded for routine %s

  • Ошибка: 1458 SQLSTATE: 42000 (ER_SP_WRONG_NAME)

    Сообщение: Incorrect routine name '%s'

  • Ошибка: 1459 SQLSTATE: HY000 (ER_TABLE_NEEDS_UPGRADE)

    Сообщение: Table upgrade required. Please do "REPAIR TABLE `%s`" or dump/reload to fix it!

  • Ошибка: 1460 SQLSTATE: 42000 (ER_SP_NO_AGGREGATE)

    Сообщение: AGGREGATE is not supported for stored functions

  • Ошибка: 1461 SQLSTATE: 42000 (ER_MAX_PREPARED_STMT_COUNT_REACHED)

    Сообщение: Can't create more than max_prepared_stmt_count statements (current value: %lu)

  • Ошибка: 1462 SQLSTATE: HY000 (ER_VIEW_RECURSIVE)

    Сообщение: `%s`.`%s` contains view recursion

  • Ошибка: 1463 SQLSTATE: 42000 (ER_NON_GROUPING_FIELD_USED)

    Сообщение: Non-grouping field '%s' is used in %s clause

  • Ошибка: 1464 SQLSTATE: HY000 (ER_TABLE_CANT_HANDLE_SPKEYS)

    Сообщение: The used table type doesn't support SPATIAL indexes

  • Ошибка: 1465 SQLSTATE: HY000 (ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA)

    Сообщение: Triggers can not be created on system tables

  • Ошибка: 1466 SQLSTATE: HY000 (ER_REMOVED_SPACES)

    Сообщение: Leading spaces are removed from name '%s'

  • Ошибка: 1467 SQLSTATE: HY000 (ER_AUTOINC_READ_FAILED)

    Сообщение: Failed to read auto-increment value from storage engine

  • Ошибка: 1468 SQLSTATE: HY000 (ER_USERNAME)

    Сообщение: user name

  • Ошибка: 1469 SQLSTATE: HY000 (ER_HOSTNAME)

    Сообщение: host name

  • Ошибка: 1470 SQLSTATE: HY000 (ER_WRONG_STRING_LENGTH)

    Сообщение: String '%s' is too long for %s (should be no longer than %d)

  • Ошибка: 1471 SQLSTATE: HY000 (ER_NON_INSERTABLE_TABLE)

    Сообщение: The target table %s of the %s is not insertable-into

  • Ошибка: 1472 SQLSTATE: HY000 (ER_ADMIN_WRONG_MRG_TABLE)

    Сообщение: Table '%s' is differently defined or of non-MyISAM type or doesn't exist

  • Ошибка: 1473 SQLSTATE: HY000 (ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT)

    Сообщение: Too high level of nesting for select

  • Ошибка: 1474 SQLSTATE: HY000 (ER_NAME_BECOMES_EMPTY)

    Сообщение: Name '%s' has become ''

  • Ошибка: 1475 SQLSTATE: HY000 (ER_AMBIGUOUS_FIELD_TERM)

    Сообщение: First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY

  • Ошибка: 1476 SQLSTATE: HY000 (ER_FOREIGN_SERVER_EXISTS)

    Сообщение: The foreign server, %s, you are trying to create already exists.

  • Ошибка: 1477 SQLSTATE: HY000 (ER_FOREIGN_SERVER_DOESNT_EXIST)

    Сообщение: The foreign server name you are trying to reference does not exist. Data source error: %s

  • Ошибка: 1478 SQLSTATE: HY000 (ER_ILLEGAL_HA_CREATE_OPTION)

    Сообщение: Table storage engine '%s' does not support the create option '%s'

  • Ошибка: 1479 SQLSTATE: HY000 (ER_PARTITION_REQUIRES_VALUES_ERROR)

    Сообщение: Syntax error: %s PARTITIONING requires definition of VALUES %s for each partition

  • Ошибка: 1480 SQLSTATE: HY000 (ER_PARTITION_WRONG_VALUES_ERROR)

    Сообщение: Only %s PARTITIONING can use VALUES %s in partition definition

  • Ошибка: 1481 SQLSTATE: HY000 (ER_PARTITION_MAXVALUE_ERROR)

    Сообщение: MAXVALUE can only be used in last partition definition

  • Ошибка: 1484 SQLSTATE: HY000 (ER_PARTITION_WRONG_NO_PART_ERROR)

    Сообщение: Wrong number of partitions defined, mismatch with previous setting

  • Ошибка: 1485 SQLSTATE: HY000 (ER_PARTITION_WRONG_NO_SUBPART_ERROR)

    Сообщение: Wrong number of subpartitions defined, mismatch with previous setting

  • Ошибка: 1486 SQLSTATE: HY000 (ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR)

    Сообщение: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed

  • Ошибка: 1488 SQLSTATE: HY000 (ER_FIELD_NOT_FOUND_PART_ERROR)

    Сообщение: Field in list of fields for partition function not found in table

  • Ошибка: 1490 SQLSTATE: HY000 (ER_INCONSISTENT_PARTITION_INFO_ERROR)

    Сообщение: The partition info in the frm file is not consistent with what can be written into the frm file

  • Ошибка: 1491 SQLSTATE: HY000 (ER_PARTITION_FUNC_NOT_ALLOWED_ERROR)

    Сообщение: The %s function returns the wrong type

  • Ошибка: 1492 SQLSTATE: HY000 (ER_PARTITIONS_MUST_BE_DEFINED_ERROR)

    Сообщение: For %s partitions each partition must be defined

  • Ошибка: 1493 SQLSTATE: HY000 (ER_RANGE_NOT_INCREASING_ERROR)

    Сообщение: VALUES LESS THAN value must be strictly increasing for each partition

  • Ошибка: 1494 SQLSTATE: HY000 (ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR)

    Сообщение: VALUES value must be of same type as partition function

  • Ошибка: 1495 SQLSTATE: HY000 (ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR)

    Сообщение: Multiple definition of same constant in list partitioning

  • Ошибка: 1496 SQLSTATE: HY000 (ER_PARTITION_ENTRY_ERROR)

    Сообщение: Partitioning can not be used stand-alone in query

  • Ошибка: 1497 SQLSTATE: HY000 (ER_MIX_HANDLER_ERROR)

    Сообщение: The mix of handlers in the partitions is not allowed in this version of MySQL

  • Ошибка: 1498 SQLSTATE: HY000 (ER_PARTITION_NOT_DEFINED_ERROR)

    Сообщение: For the partitioned engine it is necessary to define all %s

  • Ошибка: 1499 SQLSTATE: HY000 (ER_TOO_MANY_PARTITIONS_ERROR)

    Сообщение: Too many partitions (including subpartitions) were defined

  • Ошибка: 1500 SQLSTATE: HY000 (ER_SUBPARTITION_ERROR)

    Сообщение: It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning

  • Ошибка: 1501 SQLSTATE: HY000 (ER_CANT_CREATE_HANDLER_FILE)

    Сообщение: Failed to create specific handler file

  • Ошибка: 1502 SQLSTATE: HY000 (ER_BLOB_FIELD_IN_PART_FUNC_ERROR)

    Сообщение: A BLOB field is not allowed in partition function

  • Ошибка: 1503 SQLSTATE: HY000 (ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF)

    Сообщение: A %s must include all columns in the table's partitioning function

  • Ошибка: 1504 SQLSTATE: HY000 (ER_NO_PARTS_ERROR)

    Сообщение: Number of %s = 0 is not an allowed value

  • Ошибка: 1505 SQLSTATE: HY000 (ER_PARTITION_MGMT_ON_NONPARTITIONED)

    Сообщение: Partition management on a not partitioned table is not possible

  • Ошибка: 1506 SQLSTATE: HY000 (ER_FOREIGN_KEY_ON_PARTITIONED)

    Сообщение: Foreign keys are not yet supported in conjunction with partitioning

  • Ошибка: 1507 SQLSTATE: HY000 (ER_DROP_PARTITION_NON_EXISTENT)

    Сообщение: Error in list of partitions to %s

  • Ошибка: 1508 SQLSTATE: HY000 (ER_DROP_LAST_PARTITION)

    Сообщение: Cannot remove all partitions, use DROP TABLE instead

  • Ошибка: 1509 SQLSTATE: HY000 (ER_COALESCE_ONLY_ON_HASH_PARTITION)

    Сообщение: COALESCE PARTITION can only be used on HASH/KEY partitions

  • Ошибка: 1510 SQLSTATE: HY000 (ER_REORG_HASH_ONLY_ON_SAME_NO)

    Сообщение: REORGANIZE PARTITION can only be used to reorganize partitions not to change their numbers

  • Ошибка: 1511 SQLSTATE: HY000 (ER_REORG_NO_PARAM_ERROR)

    Сообщение: REORGANIZE PARTITION without parameters can only be used on auto-partitioned tables using HASH PARTITIONs

  • Ошибка: 1512 SQLSTATE: HY000 (ER_ONLY_ON_RANGE_LIST_PARTITION)

    Сообщение: %s PARTITION can only be used on RANGE/LIST partitions

  • Ошибка: 1513 SQLSTATE: HY000 (ER_ADD_PARTITION_SUBPART_ERROR)

    Сообщение: Trying to Add partition(s) with wrong number of subpartitions

  • Ошибка: 1514 SQLSTATE: HY000 (ER_ADD_PARTITION_NO_NEW_PARTITION)

    Сообщение: At least one partition must be added

  • Ошибка: 1515 SQLSTATE: HY000 (ER_COALESCE_PARTITION_NO_PARTITION)

    Сообщение: At least one partition must be coalesced

  • Ошибка: 1516 SQLSTATE: HY000 (ER_REORG_PARTITION_NOT_EXIST)

    Сообщение: More partitions to reorganize than there are partitions

  • Ошибка: 1517 SQLSTATE: HY000 (ER_SAME_NAME_PARTITION)

    Сообщение: Duplicate partition name %s

  • Ошибка: 1518 SQLSTATE: HY000 (ER_NO_BINLOG_ERROR)

    Сообщение: It is not allowed to shut off binlog on this command

  • Ошибка: 1519 SQLSTATE: HY000 (ER_CONSECUTIVE_REORG_PARTITIONS)

    Сообщение: When reorganizing a set of partitions they must be in consecutive order

  • Ошибка: 1520 SQLSTATE: HY000 (ER_REORG_OUTSIDE_RANGE)

    Сообщение: Reorganize of range partitions cannot change total ranges except for last partition where it can extend the range

  • Ошибка: 1521 SQLSTATE: HY000 (ER_PARTITION_FUNCTION_FAILURE)

    Сообщение: Partition function not supported in this version for this handler

  • Ошибка: 1523 SQLSTATE: HY000 (ER_LIMITED_PART_RANGE)

    Сообщение: The %s handler only supports 32 bit integers in VALUES

  • Ошибка: 1524 SQLSTATE: HY000 (ER_PLUGIN_IS_NOT_LOADED)

    Сообщение: Plugin '%s' is not loaded

  • Ошибка: 1525 SQLSTATE: HY000 (ER_WRONG_VALUE)

    Сообщение: Incorrect %s value: '%s'

  • Ошибка: 1526 SQLSTATE: HY000 (ER_NO_PARTITION_FOR_GIVEN_VALUE)

    Сообщение: Table has no partition for value %s

  • Ошибка: 1527 SQLSTATE: HY000 (ER_FILEGROUP_OPTION_ONLY_ONCE)

    Сообщение: It is not allowed to specify %s more than once

  • Ошибка: 1528 SQLSTATE: HY000 (ER_CREATE_FILEGROUP_FAILED)

    Сообщение: Failed to create %s

  • Ошибка: 1529 SQLSTATE: HY000 (ER_DROP_FILEGROUP_FAILED)

    Сообщение: Failed to drop %s

  • Ошибка: 1530 SQLSTATE: HY000 (ER_TABLESPACE_AUTO_EXTEND_ERROR)

    Сообщение: The handler doesn't support autoextend of tablespaces

  • Ошибка: 1531 SQLSTATE: HY000 (ER_WRONG_SIZE_NUMBER)

    Сообщение: A size parameter was incorrectly specified, either number or on the form 10M

  • Ошибка: 1532 SQLSTATE: HY000 (ER_SIZE_OVERFLOW_ERROR)

    Сообщение: The size number was correct but we don't allow the digit part to be more than 2 billion

  • Ошибка: 1533 SQLSTATE: HY000 (ER_ALTER_FILEGROUP_FAILED)

    Сообщение: Failed to alter: %s

  • Ошибка: 1534 SQLSTATE: HY000 (ER_BINLOG_ROW_LOGGING_FAILED)

    Сообщение: Writing one row to the row-based binary log failed

  • Ошибка: 1537 SQLSTATE: HY000 (ER_EVENT_ALREADY_EXISTS)

    Сообщение: Event '%s' already exists

  • Ошибка: 1539 SQLSTATE: HY000 (ER_EVENT_DOES_NOT_EXIST)

    Сообщение: Unknown event '%s'

  • Ошибка: 1542 SQLSTATE: HY000 (ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG)

    Сообщение: INTERVAL is either not positive or too big

  • Ошибка: 1543 SQLSTATE: HY000 (ER_EVENT_ENDS_BEFORE_STARTS)

    Сообщение: ENDS is either invalid or before STARTS

  • Ошибка: 1544 SQLSTATE: HY000 (ER_EVENT_EXEC_TIME_IN_THE_PAST)

    Сообщение: Event execution time is in the past. Event has been disabled

  • Ошибка: 1551 SQLSTATE: HY000 (ER_EVENT_SAME_NAME)

    Сообщение: Same old and new event name

  • Ошибка: 1553 SQLSTATE: HY000 (ER_DROP_INDEX_FK )

    Сообщение: Cannot drop index '%s': needed in a foreign key constraint

    InnoDB возвращает эту ошибку, когда Вы пытаетесь удалить последний индекс, который может провести особое справочное ограничение.

    Для оптимальной работы с запросами DML InnoDB требует, чтобы индексирование существовало на столбцах внешнего ключа так, чтобы операции UPDATE и DELETE на родительской таблице могли легко проверить, существуют ли соответствующие строки в the дочерней таблице. MySQL создает или удаляет такой индекс автоматически при необходимости, как побочный эффект CREATE TABLE, CREATE INDEX и ALTER TABLE.

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

  • Ошибка: 1554 SQLSTATE: HY000 (ER_WARN_DEPRECATED_SYNTAX_WITH_VER)

    Сообщение: The syntax '%s' is deprecated and will be removed in MySQL %s. Please use %s instead

  • Ошибка: 1556 SQLSTATE: HY000 (ER_CANT_LOCK_LOG_TABLE)

    Сообщение: You can't use locks with log tables.

  • Ошибка: 1557 SQLSTATE: 23000 (ER_FOREIGN_DUPLICATE_KEY_OLD_UNUSED)

    Сообщение: Upholding foreign key constraints for table '%s', entry '%s', key %d would lead to a duplicate entry

  • Ошибка: 1558 SQLSTATE: HY000 (ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE)

    Сообщение: Column count of mysql.%s is wrong. Expected %d, found %d. Created with MySQL %d, now running %d. Please use mysql_upgrade to fix this error.

  • Ошибка: 1559 SQLSTATE: HY000 (ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR)

    Сообщение: Cannot switch out of the row-based binary log format when the session has open temporary tables

  • Ошибка: 1560 SQLSTATE: HY000 (ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT)

    Сообщение: Cannot change the binary logging format inside a stored function or trigger

  • Ошибка: 1562 SQLSTATE: HY000 (ER_PARTITION_NO_TEMPORARY)

    Сообщение: Cannot create temporary table with partitions

  • Ошибка: 1563 SQLSTATE: HY000 (ER_PARTITION_CONST_DOMAIN_ERROR)

    Сообщение: Partition constant is out of partition function domain

  • Ошибка: 1564 SQLSTATE: HY000 (ER_PARTITION_FUNCTION_IS_NOT_ALLOWED)

    Сообщение: This partition function is not allowed

  • Ошибка: 1565 SQLSTATE: HY000 (ER_DDL_LOG_ERROR)

    Сообщение: Error in DDL log

  • Ошибка: 1566 SQLSTATE: HY000 (ER_NULL_IN_VALUES_LESS_THAN)

    Сообщение: Not allowed to use NULL value in VALUES LESS THAN

  • Ошибка: 1567 SQLSTATE: HY000 (ER_WRONG_PARTITION_NAME)

    Сообщение: Incorrect partition name

  • Ошибка: 1568 SQLSTATE: 25001 (ER_CANT_CHANGE_TX_CHARACTERISTICS)

    Сообщение: Transaction characteristics can't be changed while a transaction is in progress

  • Ошибка: 1569 SQLSTATE: HY000 (ER_DUP_ENTRY_AUTOINCREMENT_CASE)

    Сообщение: ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '%s' for key '%s'

  • Ошибка: 1571 SQLSTATE: HY000 (ER_EVENT_SET_VAR_ERROR)

    Сообщение: Error during starting/stopping of the scheduler. Error code %u

  • Ошибка: 1572 SQLSTATE: HY000 (ER_PARTITION_MERGE_ERROR)

    Сообщение: Engine cannot be used in partitioned tables

  • Ошибка: 1575 SQLSTATE: HY000 (ER_BASE64_DECODE_ERROR)

    Сообщение: Decoding of base64 string failed

  • Ошибка: 1576 SQLSTATE: HY000 (ER_EVENT_RECURSION_FORBIDDEN)

    Сообщение: Recursion of EVENT DDL statements is forbidden when body is present

  • Ошибка: 1578 SQLSTATE: HY000 (ER_ONLY_INTEGERS_ALLOWED)

    Сообщение: Only integers allowed as number here

  • Ошибка: 1579 SQLSTATE: HY000 (ER_UNSUPORTED_LOG_ENGINE)

    Сообщение: This storage engine cannot be used for log tables

  • Ошибка: 1580 SQLSTATE: HY000 (ER_BAD_LOG_STATEMENT)

    Сообщение: You cannot '%s' a log table if logging is enabled

  • Ошибка: 1581 SQLSTATE: HY000 (ER_CANT_RENAME_LOG_TABLE)

    Сообщение: Cannot rename '%s'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to '%s'

  • Ошибка: 1582 SQLSTATE: 42000 (ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT)

    Сообщение: Incorrect parameter count in the call to native function '%s'

  • Ошибка: 1583 SQLSTATE: 42000 (ER_WRONG_PARAMETERS_TO_NATIVE_FCT)

    Сообщение: Incorrect parameters in the call to native function '%s'

  • Ошибка: 1584 SQLSTATE: 42000 (ER_WRONG_PARAMETERS_TO_STORED_FCT)

    Сообщение: Incorrect parameters in the call to stored function %s

  • Ошибка: 1585 SQLSTATE: HY000 (ER_NATIVE_FCT_NAME_COLLISION)

    Сообщение: This function '%s' has the same name as a native function

  • Ошибка: 1586 SQLSTATE: 23000 (ER_DUP_ENTRY_WITH_KEY_NAME)

    Сообщение: Duplicate entry '%s' for key '%s'

    The format string for this error is also used with ER_DUP_ENTRY.

  • Ошибка: 1587 SQLSTATE: HY000 (ER_BINLOG_PURGE_EMFILE)

    Сообщение: Too many files opened, please execute the command again

  • Ошибка: 1588 SQLSTATE: HY000 (ER_EVENT_CANNOT_CREATE_IN_THE_PAST)

    Сообщение: Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.

  • Ошибка: 1589 SQLSTATE: HY000 (ER_EVENT_CANNOT_ALTER_IN_THE_PAST)

    Сообщение: Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was not changed. Specify a time in the future.

  • Ошибка: 1590 SQLSTATE: HY000 (ER_SLAVE_INCIDENT)

    Сообщение: The incident %s occured on the master. Сообщение: %s

  • Ошибка: 1591 SQLSTATE: HY000 (ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT)

    Сообщение: Table has no partition for some existing values

  • Ошибка: 1592 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_STATEMENT)

    Сообщение: Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. %s

  • Ошибка: 1593 SQLSTATE: HY000 (ER_SLAVE_FATAL_ERROR)

    Сообщение: Fatal error: %s

  • Ошибка: 1594 SQLSTATE: HY000 (ER_SLAVE_RELAY_LOG_READ_FAILURE)

    Сообщение: Relay log read failure: %s

  • Ошибка: 1595 SQLSTATE: HY000 (ER_SLAVE_RELAY_LOG_WRITE_FAILURE)

    Сообщение: Relay log write failure: %s

  • Ошибка: 1596 SQLSTATE: HY000 (ER_SLAVE_CREATE_EVENT_FAILURE)

    Сообщение: Failed to create %s

  • Ошибка: 1597 SQLSTATE: HY000 (ER_SLAVE_MASTER_COM_FAILURE)

    Сообщение: Master command %s failed: %s

  • Ошибка: 1598 SQLSTATE: HY000 (ER_BINLOG_LOGGING_IMPOSSIBLE)

    Сообщение: Binary logging not possible. Сообщение: %s

  • Ошибка: 1599 SQLSTATE: HY000 (ER_VIEW_NO_CREATION_CTX)

    Сообщение: View `%s`.`%s` has no creation context

  • Ошибка: 1600 SQLSTATE: HY000 (ER_VIEW_INVALID_CREATION_CTX)

    Сообщение: Creation context of view `%s`.`%s' is invalid

  • Ошибка: 1602 SQLSTATE: HY000 (ER_TRG_CORRUPTED_FILE)

    Сообщение: Corrupted TRG file for table `%s`.`%s`

  • Ошибка: 1603 SQLSTATE: HY000 (ER_TRG_NO_CREATION_CTX)

    Сообщение: Triggers for table `%s`.`%s` have no creation context

  • Ошибка: 1604 SQLSTATE: HY000 (ER_TRG_INVALID_CREATION_CTX)

    Сообщение: Trigger creation context of table `%s`.`%s` is invalid

  • Ошибка: 1605 SQLSTATE: HY000 (ER_EVENT_INVALID_CREATION_CTX)

    Сообщение: Creation context of event `%s`.`%s` is invalid

  • Ошибка: 1606 SQLSTATE: HY000 (ER_TRG_CANT_OPEN_TABLE)

    Сообщение: Cannot open table for trigger `%s`.`%s`

  • Ошибка: 1609 SQLSTATE: HY000 (ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT)

    Сообщение: The BINLOG statement of type `%s` was not preceded by a format description BINLOG statement.

  • Ошибка: 1610 SQLSTATE: HY000 (ER_SLAVE_CORRUPT_EVENT)

    Сообщение: Corrupted replication event was detected

  • Ошибка: 1612 SQLSTATE: HY000 (ER_LOG_PURGE_NO_FILE)

    Сообщение: Being purged log %s was not found

  • Ошибка: 1613 SQLSTATE: XA106 (ER_XA_RBTIMEOUT)

    Сообщение: XA_RBTIMEOUT: Transaction branch was rolled back: took too long

  • Ошибка: 1614 SQLSTATE: XA102 (ER_XA_RBDEADLOCK)

    Сообщение: XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected

  • Ошибка: 1615 SQLSTATE: HY000 (ER_NEED_REPREPARE)

    Сообщение: Prepared statement needs to be re-prepared

  • Ошибка: 1617 SQLSTATE: HY000 (WARN_NO_MASTER_INFO)

    Сообщение: The master info structure does not exist

  • Ошибка: 1618 SQLSTATE: HY000 (WARN_OPTION_IGNORED)

    Сообщение: <%s> option ignored

  • Ошибка: 1619 SQLSTATE: HY000 (ER_PLUGIN_DELETE_BUILTIN)

    Сообщение: Built-in plugins cannot be deleted

  • Ошибка: 1620 SQLSTATE: HY000 (WARN_PLUGIN_BUSY)

    Сообщение: Plugin is busy and will be uninstalled on shutdown

  • Ошибка: 1621 SQLSTATE: HY000 (ER_VARIABLE_IS_READONLY)

    Сообщение: %s variable '%s' is read-only. Use SET %s to assign the value

  • Ошибка: 1622 SQLSTATE: HY000 (ER_WARN_ENGINE_TRANSACTION_ROLLBACK)

    Сообщение: Storage engine %s does not support rollback for this statement. Transaction rolled back and must be restarted

  • Ошибка: 1623 SQLSTATE: HY000 (ER_SLAVE_HEARTBEAT_FAILURE)

    Сообщение: Unexpected master's heartbeat data: %s

  • Ошибка: 1624 SQLSTATE: HY000 (ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE)

    Сообщение: The requested value for the heartbeat period is either negative or exceeds the maximum allowed (%s seconds).

  • Ошибка: 1625 SQLSTATE: HY000 (ER_NDB_REPLICATION_SCHEMA_ERROR)

    Сообщение: Bad schema for mysql.ndb_replication table. Сообщение: %s

  • Ошибка: 1626 SQLSTATE: HY000 (ER_CONFLICT_FN_PARSE_ERROR)

    Сообщение: Error in parsing conflict function. Сообщение: %s

  • Ошибка: 1627 SQLSTATE: HY000 (ER_EXCEPTIONS_WRITE_ERROR)

    Сообщение: Write to exceptions table failed. Сообщение: %s

  • Ошибка: 1628 SQLSTATE: HY000 (ER_TOO_LONG_TABLE_COMMENT)

    Сообщение: Comment for table '%s' is too long (max = %lu)

  • Ошибка: 1629 SQLSTATE: HY000 (ER_TOO_LONG_FIELD_COMMENT)

    Сообщение: Comment for field '%s' is too long (max = %lu)

  • Ошибка: 1630 SQLSTATE: 42000 (ER_FUNC_INEXISTENT_NAME_COLLISION)

    Сообщение: FUNCTION %s does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual

  • Ошибка: 1631 SQLSTATE: HY000 (ER_DATABASE_NAME)

    Сообщение: Database

  • Ошибка: 1632 SQLSTATE: HY000 (ER_TABLE_NAME)

    Сообщение: Table

  • Ошибка: 1633 SQLSTATE: HY000 (ER_PARTITION_NAME)

    Сообщение: Partition

  • Ошибка: 1634 SQLSTATE: HY000 (ER_SUBPARTITION_NAME)

    Сообщение: Subpartition

  • Ошибка: 1635 SQLSTATE: HY000 (ER_TEMPORARY_NAME)

    Сообщение: Temporary

  • Ошибка: 1636 SQLSTATE: HY000 (ER_RENAMED_NAME)

    Сообщение: Renamed

  • Ошибка: 1637 SQLSTATE: HY000 (ER_TOO_MANY_CONCURRENT_TRXS)

    Сообщение: Too many active concurrent transactions

  • Ошибка: 1638 SQLSTATE: HY000 (WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED)

    Сообщение: Non-ASCII separator arguments are not fully supported

  • Ошибка: 1639 SQLSTATE: HY000 (ER_DEBUG_SYNC_TIMEOUT)

    Сообщение: debug sync point wait timed out

  • Ошибка: 1640 SQLSTATE: HY000 (ER_DEBUG_SYNC_HIT_LIMIT)

    Сообщение: debug sync point hit limit reached

  • Ошибка: 1641 SQLSTATE: 42000 (ER_DUP_SIGNAL_SET)

    Сообщение: Duplicate condition information item '%s'

  • Ошибка: 1642 SQLSTATE: 01000 (ER_SIGNAL_WARN)

    Сообщение: Unhandled user-defined warning condition

  • Ошибка: 1643 SQLSTATE: 02000 (ER_SIGNAL_NOT_FOUND)

    Сообщение: Unhandled user-defined not found condition

  • Ошибка: 1644 SQLSTATE: HY000 (ER_SIGNAL_EXCEPTION)

    Сообщение: Unhandled user-defined exception condition

  • Ошибка: 1645 SQLSTATE: 0K000 (ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER)

    Сообщение: RESIGNAL when handler not active

  • Ошибка: 1646 SQLSTATE: HY000 (ER_SIGNAL_BAD_CONDITION_TYPE)

    Сообщение: SIGNAL/RESIGNAL can only use a CONDITION defined with SQLSTATE

  • Ошибка: 1647 SQLSTATE: HY000 (WARN_COND_ITEM_TRUNCATED)

    Сообщение: Data truncated for condition item '%s'

  • Ошибка: 1648 SQLSTATE: HY000 (ER_COND_ITEM_TOO_LONG)

    Сообщение: Data too long for condition item '%s'

  • Ошибка: 1649 SQLSTATE: HY000 (ER_UNKNOWN_LOCALE)

    Сообщение: Unknown locale: '%s'

  • Ошибка: 1650 SQLSTATE: HY000 (ER_SLAVE_IGNORE_SERVER_IDS)

    Сообщение: The requested server id %d clashes with the slave startup option --replicate-same-server-id

  • Ошибка: 1651 SQLSTATE: HY000 (ER_QUERY_CACHE_DISABLED)

    Сообщение: Query cache is disabled; restart the server with query_cache_type=1 to enable it

  • Ошибка: 1652 SQLSTATE: HY000 (ER_SAME_NAME_PARTITION_FIELD)

    Сообщение: Duplicate partition field name '%s'

  • Ошибка: 1653 SQLSTATE: HY000 (ER_PARTITION_COLUMN_LIST_ERROR)

    Сообщение: Inconsistency in usage of column lists for partitioning

  • Ошибка: 1654 SQLSTATE: HY000 (ER_WRONG_TYPE_COLUMN_VALUE_ERROR)

    Сообщение: Partition column values of incorrect type

  • Ошибка: 1655 SQLSTATE: HY000 (ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR)

    Сообщение: Too many fields in '%s'

  • Ошибка: 1656 SQLSTATE: HY000 (ER_MAXVALUE_IN_VALUES_IN)

    Сообщение: Cannot use MAXVALUE as value in VALUES IN

  • Ошибка: 1657 SQLSTATE: HY000 (ER_TOO_MANY_VALUES_ERROR)

    Сообщение: Cannot have more than one value for this type of %s partitioning

  • Ошибка: 1658 SQLSTATE: HY000 (ER_ROW_SINGLE_PARTITION_FIELD_ERROR)

    Сообщение: Row expressions in VALUES IN only allowed for multi-field column partitioning

  • Ошибка: 1659 SQLSTATE: HY000 (ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD)

    Сообщение: Field '%s' is of a not allowed type for this type of partitioning

  • Ошибка: 1660 SQLSTATE: HY000 (ER_PARTITION_FIELDS_TOO_LONG)

    Сообщение: The total length of the partitioning fields is too large

  • Ошибка: 1661 SQLSTATE: HY000 (ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE)

    Сообщение: Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.

  • Ошибка: 1662 SQLSTATE: HY000 (ER_BINLOG_ROW_MODE_AND_STMT_ENGINE)

    Сообщение: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = ROW and at least one table uses a storage engine limited to statement-based logging.

  • Ошибка: 1663 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_AND_STMT_ENGINE)

    Сообщение: Cannot execute statement: impossible to write to binary log since statement is unsafe, storage engine is limited to statement-based logging, and BINLOG_FORMAT = MIXED. %s

  • Ошибка: 1664 SQLSTATE: HY000 (ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE)

    Сообщение: Cannot execute statement: impossible to write to binary log since statement is in row format and at least one table uses a storage engine limited to statement-based logging.

  • Ошибка: 1665 SQLSTATE: HY000 (ER_BINLOG_STMT_MODE_AND_ROW_ENGINE)

    Сообщение: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging.%s

  • Ошибка: 1666 SQLSTATE: HY000 (ER_BINLOG_ROW_INJECTION_AND_STMT_MODE)

    Сообщение: Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.

  • Ошибка: 1667 SQLSTATE: HY000 (ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE)

    Сообщение: Cannot execute statement: impossible to write to binary log since more than one engine is involved and at least one engine is self-logging.

  • Ошибка: 1668 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_LIMIT)

    Сообщение: The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.

  • Ошибка: 1670 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_SYSTEM_TABLE)

    Сообщение: The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.

  • Ошибка: 1671 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_AUTOINC_COLUMNS)

    Сообщение: Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly.

  • Ошибка: 1672 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_UDF)

    Сообщение: Statement is unsafe because it uses a UDF which may not return the same value on the slave.

  • Ошибка: 1673 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_SYSTEM_VARIABLE)

    Сообщение: Statement is unsafe because it uses a system variable that may have a different value on the slave.

  • Ошибка: 1674 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_SYSTEM_FUNCTION)

    Сообщение: Statement is unsafe because it uses a system function that may return a different value on the slave.

  • Ошибка: 1675 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS)

    Сообщение: Statement is unsafe because it accesses a non-transactional table after accessing a transactional table within the same transaction.

  • Ошибка: 1676 SQLSTATE: HY000 (ER_MESSAGE_AND_STATEMENT)

    Сообщение: %s Statement: %s

  • Ошибка: 1677 SQLSTATE: HY000 (ER_SLAVE_CONVERSION_FAILED)

    Сообщение: Column %d of table '%s.%s' cannot be converted from type '%s' to type '%s'

  • Ошибка: 1678 SQLSTATE: HY000 (ER_SLAVE_CANT_CREATE_CONVERSION)

    Сообщение: Can't create conversion table for table '%s.%s'

  • Ошибка: 1679 SQLSTATE: HY000 (ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT)

    Сообщение: Cannot modify @@session.binlog_format inside a transaction

  • Ошибка: 1680 SQLSTATE: HY000 (ER_PATH_LENGTH)

    Сообщение: The path specified for %s is too long.

  • Ошибка: 1681 SQLSTATE: HY000 (ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT)

    Сообщение: '%s' is deprecated and will be removed in a future release.

  • Ошибка: 1682 SQLSTATE: HY000 (ER_WRONG_NATIVE_TABLE_STRUCTURE)

    Сообщение: Native table '%s'.'%s' has the wrong structure

  • Ошибка: 1683 SQLSTATE: HY000 (ER_WRONG_PERFSCHEMA_USAGE)

    Сообщение: Invalid performance_schema usage.

  • Ошибка: 1684 SQLSTATE: HY000 (ER_WARN_I_S_SKIPPED_TABLE)

    Сообщение: Table '%s'.'%s' was skipped since its definition is being modified by concurrent DDL statement

  • Ошибка: 1685 SQLSTATE: HY000 (ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT)

    Сообщение: Cannot modify @@session.binlog_direct_non_transactional_updates inside a transaction

  • Ошибка: 1686 SQLSTATE: HY000 (ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT)

    Сообщение: Cannot change the binlog direct flag inside a stored function or trigger

  • Ошибка: 1687 SQLSTATE: 42000 (ER_SPATIAL_MUST_HAVE_GEOM_COL)

    Сообщение: A SPATIAL index may only contain a geometrical type column

  • Ошибка: 1688 SQLSTATE: HY000 (ER_TOO_LONG_INDEX_COMMENT)

    Сообщение: Comment for index '%s' is too long (max = %lu)

  • Ошибка: 1689 SQLSTATE: HY000 (ER_LOCK_ABORTED)

    Сообщение: Wait on a lock was aborted due to a pending exclusive lock

  • Ошибка: 1690 SQLSTATE: 22003 (ER_DATA_OUT_OF_RANGE)

    Сообщение: %s value is out of range in '%s'

  • Ошибка: 1691 SQLSTATE: HY000 (ER_WRONG_SPVAR_TYPE_IN_LIMIT)

    Сообщение: A variable of a non-integer based type in LIMIT clause

  • Ошибка: 1692 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE)

    Сообщение: Mixing self-logging and non-self-logging engines in a statement is unsafe.

  • Ошибка: 1693 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_MIXED_STATEMENT)

    Сообщение: Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them.

  • Ошибка: 1694 SQLSTATE: HY000 (ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN)

    Сообщение: Cannot modify @@session.sql_log_bin inside a transaction

  • Ошибка: 1695 SQLSTATE: HY000 (ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN)

    Сообщение: Cannot change the sql_log_bin inside a stored function or trigger

  • Ошибка: 1696 SQLSTATE: HY000 (ER_FAILED_READ_FROM_PAR_FILE)

    Сообщение: Failed to read from the .par file

  • Ошибка: 1697 SQLSTATE: HY000 (ER_VALUES_IS_NOT_INT_TYPE_ERROR)

    Сообщение: VALUES value for partition '%s' must have type INT

  • Ошибка: 1698 SQLSTATE: 28000 (ER_ACCESS_DENIED_NO_PASSWORD_ERROR)

    Сообщение: Access denied for user '%s'@'%s'

  • Ошибка: 1699 SQLSTATE: HY000 (ER_SET_PASSWORD_AUTH_PLUGIN)

    Сообщение: SET PASSWORD has no significance for users authenticating via plugins

  • Ошибка: 1701 SQLSTATE: 42000 (ER_TRUNCATE_ILLEGAL_FK)

    Сообщение: Cannot truncate a table referenced in a foreign key constraint (%s)

  • Ошибка: 1702 SQLSTATE: HY000 (ER_PLUGIN_IS_PERMANENT)

    Сообщение: Plugin '%s' is force_plus_permanent and can not be unloaded

  • Ошибка: 1703 SQLSTATE: HY000 (ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN)

    Сообщение: The requested value for the heartbeat period is less than 1 millisecond. The value is reset to 0, meaning that heartbeating will effectively be disabled.

  • Ошибка: 1704 SQLSTATE: HY000 (ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX)

    Сообщение: The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout.

  • Ошибка: 1705 SQLSTATE: HY000 (ER_STMT_CACHE_FULL)

    Сообщение: Multi-row statements required more than 'max_binlog_stmt_cache_size' bytes of storage; increase this mysqld variable and try again

  • Ошибка: 1706 SQLSTATE: HY000 (ER_MULTI_UPDATE_KEY_CONFLICT)

    Сообщение: Primary key/partition key update is not allowed since the table is updated both as '%s' and '%s'.

  • Ошибка: 1707 SQLSTATE: HY000 (ER_TABLE_NEEDS_REBUILD)

    Сообщение: Table rebuild required. Please do "ALTER TABLE `%s` FORCE" or dump/reload to fix it!

  • Ошибка: 1708 SQLSTATE: HY000 (WARN_OPTION_BELOW_LIMIT)

    Сообщение: The value of '%s' should be no less than the value of '%s'

  • Ошибка: 1709 SQLSTATE: HY000 (ER_INDEX_COLUMN_TOO_LONG)

    Сообщение: Index column size too large. The maximum column size is %lu bytes.

  • Ошибка: 1710 SQLSTATE: HY000 (ER_ERROR_IN_TRIGGER_BODY)

    Сообщение: Trigger '%s' has an error in its body: '%s'

  • Ошибка: 1711 SQLSTATE: HY000 (ER_ERROR_IN_UNKNOWN_TRIGGER_BODY)

    Сообщение: Unknown trigger has an error in its body: '%s'

  • Ошибка: 1712 SQLSTATE: HY000 (ER_INDEX_CORRUPT)

    Сообщение: Index %s is corrupted

  • Ошибка: 1713 SQLSTATE: HY000 (ER_UNDO_RECORD_TOO_BIG)

    Сообщение: Undo log record is too big.

  • Ошибка: 1714 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT)

    Сообщение: INSERT IGNORE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave.

  • Ошибка: 1715 SQLSTATE: HY000 ( ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE)

    Сообщение: INSERT... SELECT... ON DUPLICATE KEY UPDATE is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are updated. This order cannot be predicted and may differ on master and the slave.

  • Ошибка: 1716 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_REPLACE_SELECT)

    Сообщение: REPLACE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave.

  • Ошибка: 1717 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT)

    Сообщение: CREATE... IGNORE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave.

  • Ошибка: 1718 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT)

    Сообщение: CREATE... REPLACE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave.

  • Ошибка: 1719 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_UPDATE_IGNORE)

    Сообщение: UPDATE IGNORE is unsafe because the order in which rows are updated determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave.

  • Ошибка: 1720 SQLSTATE: HY000 (ER_PLUGIN_NO_UNINSTALL)

    Сообщение: Plugin '%s' is marked as not dynamically uninstallable. You have to stop the server to uninstall it.

  • Ошибка: 1721 SQLSTATE: HY000 (ER_PLUGIN_NO_INSTALL)

    Сообщение: Plugin '%s' is marked as not dynamically installable. You have to stop the server to install it.

  • Ошибка: 1722 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT)

    Сообщение: Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.

  • Ошибка: 1723 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC)

    Сообщение: CREATE TABLE... SELECT... on a table with an auto-increment column is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are inserted. This order cannot be predicted and may differ on master and the slave.

  • Ошибка: 1724 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_INSERT_TWO_KEYS)

    Сообщение: INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe

  • Ошибка: 1725 SQLSTATE: HY000 (ER_TABLE_IN_FK_CHECK)

    Сообщение: Table is being used in foreign key check.

  • Ошибка: 1726 SQLSTATE: HY000 (ER_UNSUPPORTED_ENGINE)

    Сообщение: Storage engine '%s' does not support system tables. [%s.%s]

  • Ошибка: 1727 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST)

    Сообщение: INSERT into autoincrement field which is not the first part in the composed primary key is unsafe.

  • Ошибка: 1728 SQLSTATE: HY000 (ER_CANNOT_LOAD_FROM_TABLE_V2)

    Сообщение: Cannot load from %s.%s. The table is probably corrupted

  • Ошибка: 1729 SQLSTATE: HY000 (ER_MASTER_DELAY_VALUE_OUT_OF_RANGE)

    Сообщение: The requested value %s for the master delay exceeds the maximum %u

  • Ошибка: 1730 SQLSTATE: HY000 (ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT)

    Сообщение: Only Format_description_log_event and row events are allowed in BINLOG statements (but %s was provided)

  • Ошибка: 1731 SQLSTATE: HY000 (ER_PARTITION_EXCHANGE_DIFFERENT_OPTION)

    Сообщение: Non matching attribute '%s' between partition and table

  • Ошибка: 1732 SQLSTATE: HY000 (ER_PARTITION_EXCHANGE_PART_TABLE)

    Сообщение: Table to exchange with partition is partitioned: '%s'

  • Ошибка: 1733 SQLSTATE: HY000 (ER_PARTITION_EXCHANGE_TEMP_TABLE)

    Сообщение: Table to exchange with partition is temporary: '%s'

  • Ошибка: 1734 SQLSTATE: HY000 (ER_PARTITION_INSTEAD_OF_SUBPARTITION)

    Сообщение: Subpartitioned table, use subpartition instead of partition

  • Ошибка: 1735 SQLSTATE: HY000 (ER_UNKNOWN_PARTITION)

    Сообщение: Unknown partition '%s' in table '%s'

  • Ошибка: 1736 SQLSTATE: HY000 (ER_TABLES_DIFFERENT_METADATA)

    Сообщение: Tables have different definitions

  • Ошибка: 1737 SQLSTATE: HY000 (ER_ROW_DOES_NOT_MATCH_PARTITION)

    Сообщение: Found a row that does not match the partition

  • Ошибка: 1738 SQLSTATE: HY000 (ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX)

    Сообщение: Option binlog_cache_size (%lu) is greater than max_binlog_cache_size (%lu); setting binlog_cache_size equal to max_binlog_cache_size.

  • Ошибка: 1739 SQLSTATE: HY000 (ER_WARN_INDEX_NOT_APPLICABLE)

    Сообщение: Cannot use %s access on index '%s' due to type or collation conversion on field '%s'

  • Ошибка: 1740 SQLSTATE: HY000 (ER_PARTITION_EXCHANGE_FOREIGN_KEY)

    Сообщение: Table to exchange with partition has foreign key references: '%s'

  • Ошибка: 1742 SQLSTATE: HY000 (ER_RPL_INFO_DATA_TOO_LONG)

    Сообщение: Data for column '%s' too long

  • Ошибка: 1743 SQLSTATE: HY000 (ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE)

    Сообщение: Replication event checksum verification failed while reading from network.

  • Ошибка: 1745 SQLSTATE: HY000 (ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX)

    Сообщение: Option binlog_stmt_cache_size (%lu) is greater than max_binlog_stmt_cache_size (%lu); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.

  • Ошибка: 1746 SQLSTATE: HY000 (ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT)

    Сообщение: Can't update table '%s' while '%s' is being created.

  • Ошибка: 1747 SQLSTATE: HY000 (ER_PARTITION_CLAUSE_ON_NONPARTITIONED)

    Сообщение: PARTITION () clause on non partitioned table

  • Ошибка: 1748 SQLSTATE: HY000 (ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET)

    Сообщение: Found a row not matching the given partition set

  • Ошибка: 1750 SQLSTATE: HY000 (ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE)

    Сообщение: Failure while changing the type of replication repository: %s.

  • Ошибка: 1751 SQLSTATE: HY000 (ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE)

    Сообщение: The creation of some temporary tables could not be rolled back.

  • Ошибка: 1752 SQLSTATE: HY000 (ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE)

    Сообщение: Some temporary tables were dropped, but these operations could not be rolled back.

  • Ошибка: 1753 SQLSTATE: HY000 (ER_MTS_FEATURE_IS_NOT_SUPPORTED)

    Сообщение: %s is not supported in multi-threaded slave mode. %s

  • Ошибка: 1754 SQLSTATE: HY000 (ER_MTS_UPDATED_DBS_GREATER_MAX)

    Сообщение: The number of modified databases exceeds the maximum %d; the database names will not be included in the replication event metadata.

  • Ошибка: 1755 SQLSTATE: HY000 (ER_MTS_CANT_PARALLEL)

    Сообщение: Cannot execute the current event group in the parallel mode. Encountered event %s, relay-log name %s, position %s which prevents execution of this event group in parallel mode. Reason: %s.

  • Ошибка: 1756 SQLSTATE: HY000 (ER_MTS_INCONSISTENT_DATA)

    Сообщение: %s

  • Ошибка: 1757 SQLSTATE: HY000 (ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING)

    Сообщение: FULLTEXT index is not supported for partitioned tables.

  • Ошибка: 1758 SQLSTATE: 35000 (ER_DA_INVALID_CONDITION_NUMBER)

    Сообщение: Invalid condition number

  • Ошибка: 1759 SQLSTATE: HY000 (ER_INSECURE_PLAIN_TEXT)

    Сообщение: Sending passwords in plain text without SSL/TLS is extremely insecure.

  • Ошибка: 1760 SQLSTATE: HY000 (ER_INSECURE_CHANGE_MASTER)

    Сообщение: Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.

  • Ошибка: 1761 SQLSTATE: 23000 (ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO)

    Сообщение: Foreign key constraint for table '%s', record '%s' would lead to a duplicate entry in table '%s', key '%s'

  • Ошибка: 1762 SQLSTATE: 23000 (ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO)

    Сообщение: Foreign key constraint for table '%s', record '%s' would lead to a duplicate entry in a child table

  • Ошибка: 1763 SQLSTATE: HY000 (ER_SQLTHREAD_WITH_SECURE_SLAVE)

    Сообщение: Setting authentication options is not possible when only the Slave SQL Thread is being started.

  • Ошибка: 1764 SQLSTATE: HY000 (ER_TABLE_HAS_NO_FT)

    Сообщение: The table does not have FULLTEXT index to support this query

  • Ошибка: 1765 SQLSTATE: HY000 (ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER)

    Сообщение: The system variable %s cannot be set in stored functions or triggers.

  • Ошибка: 1766 SQLSTATE: HY000 (ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION)

    Сообщение: The system variable %s cannot be set when there is an ongoing transaction.

  • Ошибка: 1769 SQLSTATE: HY000 (ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION)

    Сообщение: The statement 'SET %s' cannot invoke a stored function.

  • Ошибка: 1770 SQLSTATE: HY000 (ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL)

    Сообщение: The system variable @@SESSION.GTID_NEXT cannot be 'AUTOMATIC' when @@SESSION.GTID_NEXT_LIST is non-NULL.

  • Ошибка: 1772 SQLSTATE: HY000 (ER_MALFORMED_GTID_SET_SPECIFICATION)

    Сообщение: Malformed GTID set specification '%s'.

  • Ошибка: 1773 SQLSTATE: HY000 (ER_MALFORMED_GTID_SET_ENCODING)

    Сообщение: Malformed GTID set encoding.

  • Ошибка: 1774 SQLSTATE: HY000 (ER_MALFORMED_GTID_SPECIFICATION)

    Сообщение: Malformed GTID specification '%s'.

  • Ошибка: 1775 SQLSTATE: HY000 (ER_GNO_EXHAUSTED)

    Сообщение: Impossible to generate Global Transaction Identifier: the integer component reached the maximal value. Restart the server with a new server_uuid.

  • Ошибка: 1776 SQLSTATE: HY000 (ER_BAD_SLAVE_AUTO_POSITION)

    Сообщение: Parameters MASTER_LOG_FILE, MASTER_LOG_POS, RELAY_LOG_FILE and RELAY_LOG_POS cannot be set when MASTER_AUTO_POSITION is active.

  • Ошибка: 1777 SQLSTATE: HY000 (ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF)

    Сообщение: CHANGE MASTER TO MASTER_AUTO_POSITION = 1 cannot be executed because @@GLOBAL.GTID_MODE = OFF.

  • Ошибка: 1778 SQLSTATE: HY000 (ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET)

    Сообщение: Cannot execute statements with implicit commit inside a transaction when @@SESSION.GTID_NEXT == 'UUID:NUMBER'.

  • Ошибка: 1779 SQLSTATE: HY000 (ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON)

    Сообщение: GTID_MODE = ON requires ENFORCE_GTID_CONSISTENCY = ON.

  • Ошибка: 1781 SQLSTATE: HY000 (ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF)

    Сообщение: @@SESSION.GTID_NEXT cannot be set to UUID:NUMBER when @@GLOBAL.GTID_MODE = OFF.

  • Ошибка: 1782 SQLSTATE: HY000 (ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON)

    Сообщение: @@SESSION.GTID_NEXT cannot be set to ANONYMOUS when @@GLOBAL.GTID_MODE = ON.

  • Ошибка: 1783 SQLSTATE: HY000 (ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF)

    Сообщение: @@SESSION.GTID_NEXT_LIST cannot be set to a non-NULL value when @@GLOBAL.GTID_MODE = OFF.

  • Ошибка: 1785 SQLSTATE: HY000 (ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE)

    Сообщение: Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.

  • Ошибка: 1786 SQLSTATE: HY000 (ER_GTID_UNSAFE_CREATE_SELECT)

    Сообщение: Statement violates GTID consistency: CREATE TABLE ... SELECT.

  • Ошибка: 1787 SQLSTATE: HY000 (ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION)

    Сообщение: Statement violates GTID consistency: CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can only be executed outside transactional context. These statements are also not allowed in a function or trigger because functions and triggers are also considered to be multi-statement transactions.

  • Ошибка: 1788 SQLSTATE: HY000 (ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME)

    Сообщение: The value of @@GLOBAL.GTID_MODE can only be changed one step at a time: OFF <-> OFF_PERMISSIVE <-> ON_PERMISSIVE <-> ON. Also note that this value must be stepped up or down simultaneously on all servers. See the Manual for instructions.

  • Ошибка: 1789 SQLSTATE: HY000 (ER_MASTER_HAS_PURGED_REQUIRED_GTIDS)

    Сообщение: The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.

  • Ошибка: 1790 SQLSTATE: HY000 (ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID)

    Сообщение: @@SESSION.GTID_NEXT cannot be changed by a client that owns a GTID. The client owns %s. Ownership is released on COMMIT or ROLLBACK.

  • Ошибка: 1791 SQLSTATE: HY000 (ER_UNKNOWN_EXPLAIN_FORMAT)

    Сообщение: Unknown EXPLAIN format name: '%s'

  • Ошибка: 1792 SQLSTATE: 25006 (ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION)

    Сообщение: Cannot execute statement in a READ ONLY transaction.

  • Ошибка: 1793 SQLSTATE: HY000 (ER_TOO_LONG_TABLE_PARTITION_COMMENT)

    Сообщение: Comment for table partition '%s' is too long (max = %lu)

  • Ошибка: 1794 SQLSTATE: HY000 (ER_SLAVE_CONFIGURATION)

    Сообщение: Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.

  • Ошибка: 1795 SQLSTATE: HY000 (ER_INNODB_FT_LIMIT)

    Сообщение: InnoDB presently supports one FULLTEXT index creation at a time

  • Ошибка: 1796 SQLSTATE: HY000 (ER_INNODB_NO_FT_TEMP_TABLE)

    Сообщение: Cannot create FULLTEXT index on temporary InnoDB table

  • Ошибка: 1797 SQLSTATE: HY000 (ER_INNODB_FT_WRONG_DOCID_COLUMN)

    Сообщение: Column '%s' is of wrong type for an InnoDB FULLTEXT index

  • Ошибка: 1798 SQLSTATE: HY000 (ER_INNODB_FT_WRONG_DOCID_INDEX)

    Сообщение: Index '%s' is of wrong type for an InnoDB FULLTEXT index

  • Ошибка: 1799 SQLSTATE: HY000 (ER_INNODB_ONLINE_LOG_TOO_BIG)

    Сообщение: Creating index '%s' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again.

  • Ошибка: 1800 SQLSTATE: HY000 (ER_UNKNOWN_ALTER_ALGORITHM)

    Сообщение: Unknown ALGORITHM '%s'

  • Ошибка: 1801 SQLSTATE: HY000 (ER_UNKNOWN_ALTER_LOCK)

    Сообщение: Unknown LOCK type '%s'

  • Ошибка: 1802 SQLSTATE: HY000 (ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS)

    Сообщение: CHANGE MASTER cannot be executed when the slave was stopped with an error or killed in MTS mode. Consider using RESET SLAVE or START SLAVE UNTIL.

  • Ошибка: 1803 SQLSTATE: HY000 (ER_MTS_RECOVERY_FAILURE)

    Сообщение: Cannot recover after SLAVE errored out in parallel execution mode. Additional error messages can be found in the MySQL error log.

  • Ошибка: 1804 SQLSTATE: HY000 (ER_MTS_RESET_WORKERS)

    Сообщение: Cannot clean up worker info tables. Additional error messages can be found in the MySQL error log.

  • Ошибка: 1805 SQLSTATE: HY000 (ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2)

    Сообщение: Column count of %s.%s is wrong. Expected %d, found %d. The table is probably corrupted

  • Ошибка: 1806 SQLSTATE: HY000 (ER_SLAVE_SILENT_RETRY_TRANSACTION)

    Сообщение: Slave must silently retry current transaction

  • Ошибка: 1807 SQLSTATE: HY000 (ER_DISCARD_FK_CHECKS_RUNNING)

    Сообщение: There is a foreign key check running on table '%s'. Cannot discard the table.

  • Ошибка: 1808 SQLSTATE: HY000 (ER_TABLE_SCHEMA_MISMATCH)

    Сообщение: Schema mismatch (%s)

  • Ошибка: 1809 SQLSTATE: HY000 (ER_TABLE_IN_SYSTEM_TABLESPACE)

    Сообщение: Table '%s' in system tablespace

  • Ошибка: 1810 SQLSTATE: HY000 (ER_IO_READ_ERROR)

    Сообщение: IO Read error: (%lu, %s) %s

  • Ошибка: 1811 SQLSTATE: HY000 (ER_IO_WRITE_ERROR)

    Сообщение: IO Write error: (%lu, %s) %s

  • Ошибка: 1812 SQLSTATE: HY000 (ER_TABLESPACE_MISSING)

    Сообщение: Tablespace is missing for table %s.

  • Ошибка: 1813 SQLSTATE: HY000 (ER_TABLESPACE_EXISTS)

    Сообщение: Tablespace '%s' exists.

  • Ошибка: 1814 SQLSTATE: HY000 (ER_TABLESPACE_DISCARDED)

    Сообщение: Tablespace has been discarded for table '%s'

  • Ошибка: 1815 SQLSTATE: HY000 (ER_INTERNAL_ERROR)

    Сообщение: Internal error: %s

  • Ошибка: 1816 SQLSTATE: HY000 (ER_INNODB_IMPORT_ERROR)

    Сообщение: ALTER TABLE %s IMPORT TABLESPACE failed with error %lu : '%s'

  • Ошибка: 1817 SQLSTATE: HY000 (ER_INNODB_INDEX_CORRUPT)

    Сообщение: Index corrupt: %s

  • Ошибка: 1818 SQLSTATE: HY000 (ER_INVALID_YEAR_COLUMN_LENGTH)

    Сообщение: Supports only YEAR or YEAR(4) column.

  • Ошибка: 1819 SQLSTATE: HY000 (ER_NOT_VALID_PASSWORD)

    Сообщение: Your password does not satisfy the current policy requirements

  • Ошибка: 1820 SQLSTATE: HY000 (ER_MUST_CHANGE_PASSWORD)

    Сообщение: You must reset your password using ALTER USER statement before executing this statement.

  • Ошибка: 1821 SQLSTATE: HY000 (ER_FK_NO_INDEX_CHILD)

    Сообщение: Failed to add the foreign key constaint. Missing index for constraint '%s' in the foreign table '%s'

  • Ошибка: 1822 SQLSTATE: HY000 (ER_FK_NO_INDEX_PARENT)

    Сообщение: Failed to add the foreign key constaint. Missing index for constraint '%s' in the referenced table '%s'

  • Ошибка: 1823 SQLSTATE: HY000 (ER_FK_FAIL_ADD_SYSTEM)

    Сообщение: Failed to add the foreign key constraint '%s' to system tables

  • Ошибка: 1824 SQLSTATE: HY000 (ER_FK_CANNOT_OPEN_PARENT)

    Сообщение: Failed to open the referenced table '%s'

  • Ошибка: 1825 SQLSTATE: HY000 (ER_FK_INCORRECT_OPTION)

    Сообщение: Failed to add the foreign key constraint on table '%s'. Incorrect options in FOREIGN KEY constraint '%s'

  • Ошибка: 1826 SQLSTATE: HY000 (ER_FK_DUP_NAME)

    Сообщение: Duplicate foreign key constraint name '%s'

  • Ошибка: 1827 SQLSTATE: HY000 (ER_PASSWORD_FORMAT)

    Сообщение: The password hash doesn't have the expected format. Check if the correct password algorithm is being used with the PASSWORD() function.

  • Ошибка: 1828 SQLSTATE: HY000 (ER_FK_COLUMN_CANNOT_DROP)

    Сообщение: Cannot drop column '%s': needed in a foreign key constraint '%s'

  • Ошибка: 1829 SQLSTATE: HY000 (ER_FK_COLUMN_CANNOT_DROP_CHILD)

    Сообщение: Cannot drop column '%s': needed in a foreign key constraint '%s' of table '%s'

  • Ошибка: 1830 SQLSTATE: HY000 (ER_FK_COLUMN_NOT_NULL)

    Сообщение: Column '%s' cannot be NOT NULL: needed in a foreign key constraint '%s' SET NULL

  • Ошибка: 1831 SQLSTATE: HY000 (ER_DUP_INDEX)

    Сообщение: Duplicate index '%s' defined on the table '%s.%s'. This is deprecated and will be disallowed in a future release.

  • Ошибка: 1832 SQLSTATE: HY000 (ER_FK_COLUMN_CANNOT_CHANGE)

    Сообщение: Cannot change column '%s': used in a foreign key constraint '%s'

  • Ошибка: 1833 SQLSTATE: HY000 (ER_FK_COLUMN_CANNOT_CHANGE_CHILD)

    Сообщение: Cannot change column '%s': used in a foreign key constraint '%s' of table '%s'

  • Ошибка: 1835 SQLSTATE: HY000 (ER_MALFORMED_PACKET)

    Сообщение: Malformed communication packet.

  • Ошибка: 1836 SQLSTATE: HY000 (ER_READ_ONLY_MODE)

    Сообщение: Running in read-only mode

  • Ошибка: 1837 SQLSTATE: HY000 (ER_GTID_NEXT_TYPE_UNDEFINED_GROUP)

    Сообщение: When @@SESSION.GTID_NEXT is set to a GTID, you must explicitly set it to a different value after a COMMIT or ROLLBACK. Please check GTID_NEXT variable manual page for detailed explanation. Current @@SESSION.GTID_NEXT is '%s'.

  • Ошибка: 1838 SQLSTATE: HY000 (ER_VARIABLE_NOT_SETTABLE_IN_SP)

    Сообщение: The system variable %s cannot be set in stored procedures.

  • Ошибка: 1840 SQLSTATE: HY000 (ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY)

    Сообщение: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.

  • Ошибка: 1841 SQLSTATE: HY000 (ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY)

    Сообщение: @@GLOBAL.GTID_PURGED can only be set when there are no ongoing transactions (not even in other clients).

  • Ошибка: 1842 SQLSTATE: HY000 (ER_GTID_PURGED_WAS_CHANGED)

    Сообщение: @@GLOBAL.GTID_PURGED was changed from '%s' to '%s'.

  • Ошибка: 1843 SQLSTATE: HY000 (ER_GTID_EXECUTED_WAS_CHANGED)

    Сообщение: @@GLOBAL.GTID_EXECUTED was changed from '%s' to '%s'.

  • Ошибка: 1844 SQLSTATE: HY000 (ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES)

    Сообщение: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT, and both replicated and non replicated tables are written to.

  • Ошибка: 1845 SQLSTATE: 0A000 (ER_ALTER_OPERATION_NOT_SUPPORTED)

    Сообщение: %s is not supported for this operation. Try %s.

  • Ошибка: 1846 SQLSTATE: 0A000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON)

    Сообщение: %s is not supported. Reason: %s. Try %s.

  • Ошибка: 1847 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY)

    Сообщение: COPY algorithm requires a lock

  • Ошибка: 1848 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION)

    Сообщение: Partition specific operations do not yet support LOCK/ALGORITHM

  • Ошибка: 1849 SQLSTATE: HY000 ( ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME)

    Сообщение: Columns participating in a foreign key are renamed

  • Ошибка: 1850 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE)

    Сообщение: Cannot change column type INPLACE

  • Ошибка: 1851 SQLSTATE: HY000 ( ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK)

    Сообщение: Adding foreign keys needs foreign_key_checks=OFF

  • Ошибка: 1853 SQLSTATE: HY000 ( ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK)

    Сообщение: Dropping a primary key is not allowed without also adding a new primary key

  • Ошибка: 1854 SQLSTATE: HY000 ( ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC)

    Сообщение: Adding an auto-increment column requires a lock

  • Ошибка: 1855 SQLSTATE: HY000 ( ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS)

    Сообщение: Cannot replace hidden FTS_DOC_ID with a user-visible one

  • Ошибка: 1856 SQLSTATE: HY000 ( ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS)

    Сообщение: Cannot drop or rename FTS_DOC_ID

  • Ошибка: 1857 SQLSTATE: HY000 ( ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS)

    Сообщение: Fulltext index creation requires a lock

  • Ошибка: 1858 SQLSTATE: HY000 ( ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE)

    Сообщение: sql_slave_skip_counter can not be set when the server is running with @@GLOBAL.GTID_MODE = ON. Instead, for each transaction that you want to skip, generate an empty transaction with the same GTID as the transaction

  • Ошибка: 1859 SQLSTATE: 23000 ( ER_DUP_UNKNOWN_IN_INDEX)

    Сообщение: Duplicate entry for key '%s'

  • Ошибка: 1860 SQLSTATE: HY000 ( ER_IDENT_CAUSES_TOO_LONG_PATH)

    Сообщение: Long database name and identifier for object resulted in path length exceeding %d characters. Path: '%s'.

  • Ошибка: 1861 SQLSTATE: HY000 ( ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL)

    Сообщение: cannot silently convert NULL values, as required in this SQL_MODE

  • Ошибка: 1862 SQLSTATE: HY000 ( ER_MUST_CHANGE_PASSWORD_LOGIN)

    Сообщение: Your password has expired. To log in you must change it using a client that supports expired passwords.

  • Ошибка: 1863 SQLSTATE: HY000 (ER_ROW_IN_WRONG_PARTITION)

    Сообщение: Found a row in wrong partition %s

  • Ошибка: 1864 SQLSTATE: HY000 (ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX)

    Сообщение: Cannot schedule event %s, relay-log name %s, position %s to Worker thread because its size %lu exceeds %lu of slave_pending_jobs_size_max.

  • Ошибка: 1866 SQLSTATE: HY000 (ER_BINLOG_LOGICAL_CORRUPTION)

    Сообщение: The binary log file '%s' is logically corrupted: %s

  • Ошибка: 1867 SQLSTATE: HY000 (ER_WARN_PURGE_LOG_IN_USE)

    Сообщение: file %s was not purged because it was being read by %d thread(s), purged only %d out of %d files.

  • Ошибка: 1868 SQLSTATE: HY000 (ER_WARN_PURGE_LOG_IS_ACTIVE)

    Сообщение: file %s was not purged because it is the active log file.

  • Ошибка: 1869 SQLSTATE: HY000 (ER_AUTO_INCREMENT_CONFLICT)

    Сообщение: Auto-increment value in UPDATE conflicts with internally generated values

  • Ошибка: 1870 SQLSTATE: HY000 (WARN_ON_BLOCKHOLE_IN_RBR)

    Сообщение: Row events are not logged for %s statements that modify BLACKHOLE tables in row format. Table(s): '%s'

  • Ошибка: 1871 SQLSTATE: HY000 (ER_SLAVE_MI_INIT_REPOSITORY)

    Сообщение: Slave failed to initialize master info structure from the repository

  • Ошибка: 1872 SQLSTATE: HY000 (ER_SLAVE_RLI_INIT_REPOSITORY)

    Сообщение: Slave failed to initialize relay log info structure from the repository

  • Ошибка: 1873 SQLSTATE: 28000 (ER_ACCESS_DENIED_CHANGE_USER_ERROR)

    Сообщение: Access denied trying to change to user '%s'@'%s' (using password: %s). Disconnecting.

  • Ошибка: 1874 SQLSTATE: HY000 (ER_INNODB_READ_ONLY)

    Сообщение: InnoDB is in read only mode.

  • Ошибка: 1875 SQLSTATE: HY000 (ER_STOP_SLAVE_SQL_THREAD_TIMEOUT)

    Сообщение: STOP SLAVE command execution is incomplete: Slave SQL thread got the stop signal, thread is busy, SQL thread will stop once the current task is complete.

  • Ошибка: 1876 SQLSTATE: HY000 (ER_STOP_SLAVE_IO_THREAD_TIMEOUT)

    Сообщение: STOP SLAVE command execution is incomplete: Slave IO thread got the stop signal, thread is busy, IO thread will stop once the current task is complete.

  • Ошибка: 1877 SQLSTATE: HY000 (ER_TABLE_CORRUPT)

    Сообщение: Operation cannot be performed. The table '%s.%s' is missing, corrupt or contains bad data.

  • Ошибка: 1878 SQLSTATE: HY000 (ER_TEMP_FILE_WRITE_FAILURE)

    Сообщение: Temporary file write failure.

  • Ошибка: 1879 SQLSTATE: HY000 (ER_INNODB_FT_AUX_NOT_HEX_ID)

    Сообщение: Upgrade index name failed, please use create index(alter table) algorithm copy to rebuild index.

  • Ошибка: 1880 SQLSTATE: HY000 (ER_OLD_TEMPORALS_UPGRADED)

    Сообщение: TIME/TIMESTAMP/DATETIME columns of old format have been upgraded to the new format.

  • Ошибка: 1881 SQLSTATE: HY000 (ER_INNODB_FORCED_RECOVERY)

    Сообщение: Operation not allowed when innodb_forced_recovery > 0.

  • Ошибка: 1882 SQLSTATE: HY000 (ER_AES_INVALID_IV)

    Сообщение: The initialization vector supplied to %s is too short. Must be at least %d bytes long

  • Ошибка: 1883 SQLSTATE: HY000 (ER_PLUGIN_CANNOT_BE_UNINSTALLED)

    Сообщение: Plugin '%s' cannot be uninstalled now. %s

  • Ошибка: 1884 SQLSTATE: HY000 (ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP)

    Сообщение: Cannot execute statement because it needs to be written to the binary log as multiple statements, and this is not allowed when @@SESSION.GTID_NEXT == 'UUID:NUMBER'.

  • Ошибка: 1885 SQLSTATE: HY000 (ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER)

    Сообщение: Slave has more GTIDs than the master has, using the master's SERVER_UUID. This may indicate that the end of the binary log was truncated or that the last binary log file was lost, e.g., after a power or disk failure when sync_binlog != 1. The master may or may not have rolled back transactions that were already replicated to the slave. Suggest to replicate any transactions that master has rolled back from slave to master, and/or commit empty transactions on master to account for transactions that have been committed on master but are not included in GTID_EXECUTED.

  • Ошибка: 3000 SQLSTATE: HY000 (ER_FILE_CORRUPT)

    Сообщение: File %s is corrupted

  • Ошибка: 3001 SQLSTATE: HY000 (ER_ERROR_ON_MASTER)

    Сообщение: Query partially completed on the master (error on master: %d) and was aborted. There is a chance that your master is inconsistent at this point. If you are sure that your master is ok, run this query manually on the slave and then restart the slave with SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;. Query:'%s'

  • Ошибка: 3002 SQLSTATE: HY000 (ER_INCONSISTENT_ERROR)

    Сообщение: Query caused different errors on master and slave. Error on master: message (format)='%s' error code=%d; Error on slave:actual message='%s', error code=%d. Default database:'%s'. Query:'%s'

  • Ошибка: 3003 SQLSTATE: HY000 (ER_STORAGE_ENGINE_NOT_LOADED)

    Сообщение: Storage engine for table '%s'.'%s' is not loaded.

  • Ошибка: 3004 SQLSTATE: 0Z002 (ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER)

    Сообщение: GET STACKED DIAGNOSTICS when handler not active

  • Ошибка: 3005 SQLSTATE: HY000 (ER_WARN_LEGACY_SYNTAX_CONVERTED)

    Сообщение: %s is no longer supported. The statement was converted to %s.

  • Ошибка: 3006 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN)

    Сообщение: Statement is unsafe because it uses a fulltext parser plugin which may not return the same value on the slave.

  • Ошибка: 3007 SQLSTATE: HY000 (ER_CANNOT_DISCARD_TEMPORARY_TABLE)

    Сообщение: Cannot DISCARD/IMPORT tablespace associated with temporary table

  • Ошибка: 3008 SQLSTATE: HY000 (ER_FK_DEPTH_EXCEEDED)

    Сообщение: Foreign key cascade delete/update exceeds max depth of %d.

  • Ошибка: 3009 SQLSTATE: HY000 (ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2)

    Сообщение: Column count of %s.%s is wrong. Expected %d, found %d. Created with MySQL %d, now running %d. Please use mysql_upgrade to fix this error.

  • Ошибка: 3010 SQLSTATE: HY000 (ER_WARN_TRIGGER_DOESNT_HAVE_CREATED)

    Сообщение: Trigger %s.%s.%s does not have CREATED attribute.

  • Ошибка: 3011 SQLSTATE: HY000 (ER_REFERENCED_TRG_DOES_NOT_EXIST)

    Сообщение: Referenced trigger '%s' for the given action time and event type does not exist.

  • Ошибка: 3012 SQLSTATE: HY000 (ER_EXPLAIN_NOT_SUPPORTED)

    Сообщение: EXPLAIN FOR CONNECTION command is supported only for SELECT/UPDATE/INSERT/DELETE/REPLACE

  • Ошибка: 3013 SQLSTATE: HY000 (ER_INVALID_FIELD_SIZE)

    Сообщение: Invalid size for column '%s'.

  • Ошибка: 3014 SQLSTATE: HY000 (ER_MISSING_HA_CREATE_OPTION)

    Сообщение: Table storage engine '%s' found required create option missing

  • Ошибка: 3015 SQLSTATE: HY000 (ER_ENGINE_OUT_OF_MEMORY)

    Сообщение: Out of memory in storage engine '%s'.

  • Ошибка: 3016 SQLSTATE: HY000 (ER_PASSWORD_EXPIRE_ANONYMOUS_USER)

    Сообщение: The password for anonymous user cannot be expired.

  • Ошибка: 3017 SQLSTATE: HY000 (ER_SLAVE_SQL_THREAD_MUST_STOP)

    Сообщение: This operation cannot be performed with a running slave sql thread; run STOP SLAVE SQL_THREAD first

  • Ошибка: 3018 SQLSTATE: HY000 (ER_NO_FT_MATERIALIZED_SUBQUERY)

    Сообщение: Cannot create FULLTEXT index on materialized subquery

  • Ошибка: 3019 SQLSTATE: HY000 (ER_INNODB_UNDO_LOG_FULL)

    Сообщение: Undo Log error: %s

  • Ошибка: 3020 SQLSTATE: 2201E (ER_INVALID_ARGUMENT_FOR_LOGARITHM)

    Сообщение: Invalid argument for logarithm

  • Ошибка: 3021 SQLSTATE: HY000 (ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP)

    Сообщение: This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '%s' first.

  • Ошибка: 3022 SQLSTATE: HY000 (ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO)

    Сообщение: This operation may not be safe when the slave has temporary tables. The tables will be kept open until the server restarts or until the tables are deleted by any replicated DROP statement. Suggest to wait until slave_open_temp_tables = 0.

  • Ошибка: 3023 SQLSTATE: HY000 (ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS)

    Сообщение: CHANGE MASTER TO with a MASTER_LOG_FILE clause but no MASTER_LOG_POS clause may not be safe. The old position value may not be valid for the new binary log file.

  • Ошибка: 3024 SQLSTATE: HY000 (ER_QUERY_TIMEOUT)

    Сообщение: Query execution was interrupted, maximum statement execution time exceeded

  • Ошибка: 3025 SQLSTATE: HY000 (ER_NON_RO_SELECT_DISABLE_TIMER)

    Сообщение: Select is not a read only statement, disabling timer

  • Ошибка: 3026 SQLSTATE: HY000 (ER_DUP_LIST_ENTRY)

    Сообщение: Duplicate entry '%s'.

  • Ошибка: 3028 SQLSTATE: HY000 (ER_AGGREGATE_ORDER_FOR_UNION)

    Сообщение: Expression #%u of ORDER BY contains aggregate function and applies to a UNION

  • Ошибка: 3029 SQLSTATE: HY000 (ER_AGGREGATE_ORDER_NON_AGG_QUERY)

    Сообщение: Expression #%u of ORDER BY contains aggregate function and applies to the result of a non-aggregated query

  • Ошибка: 3030 SQLSTATE: HY000 (ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR)

    Сообщение: Slave worker has stopped after at least one previous worker encountered an error when slave-preserve-commit-order was enabled. To preserve commit order, the last transaction executed by this thread has not been committed. When restarting the slave after fixing any failed threads, you should fix this worker as well.

  • Ошибка: 3031 SQLSTATE: HY000 (ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER)

    Сообщение: slave_preserve_commit_order is not supported %s.

  • Ошибка: 3032 SQLSTATE: HY000 (ER_SERVER_OFFLINE_MODE)

    Сообщение: The server is currently in offline mode

  • Ошибка: 3033 SQLSTATE: HY000 (ER_GIS_DIFFERENT_SRIDS)

    Сообщение: Binary geometry function %s given two geometries of different srids: %u and %u, which should have been identical.

    Geometry values passed as arguments to spatial functions must have the same SRID value.

  • Ошибка: 3034 SQLSTATE: HY000 (ER_GIS_UNSUPPORTED_ARGUMENT)

    Сообщение: Calling geometry function %s with unsupported types of arguments.

    A spatial function was called with a combination of argument types that the function does not support.

  • Ошибка: 3035 SQLSTATE: HY000 (ER_GIS_UNKNOWN_ERROR)

    Сообщение: Unknown GIS error occured in function %s.

  • Ошибка: 3036 SQLSTATE: HY000 (ER_GIS_UNKNOWN_EXCEPTION)

    Сообщение: Unknown exception caught in GIS function %s.

  • Ошибка: 3037 SQLSTATE: 22023 (ER_GIS_INVALID_DATA)

    Сообщение: Invalid GIS data provided to function %s.

    A spatial function was called with an argument not recognized as a valid geometry value.

  • Ошибка: 3038 SQLSTATE: HY000 (ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION)

    Сообщение: The geometry has no data in function %s.

  • Ошибка: 3039 SQLSTATE: HY000 (ER_BOOST_GEOMETRY_CENTROID_EXCEPTION)

    Сообщение: Unable to calculate centroid because geometry is empty in function %s.

  • Ошибка: 3040 SQLSTATE: HY000 (ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION)

    Сообщение: Geometry overlay calculation error: geometry data is invalid in function %s.

  • Ошибка: 3041 SQLSTATE: HY000 (ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION)

    Сообщение: Geometry turn info calculation error: geometry data is invalid in function %s.

  • Ошибка: 3042 SQLSTATE: HY000 (ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION)

    Сообщение: Analysis procedures of intersection points interrupted unexpectedly in function %s.

  • Ошибка: 3043 SQLSTATE: HY000 (ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION)

    Сообщение: Unknown exception thrown in function %s.

  • Ошибка: 3044 SQLSTATE: HY000 (ER_STD_BAD_ALLOC_ERROR)

    Сообщение: Memory allocation error: %s in function %s.

  • Ошибка: 3045 SQLSTATE: HY000 (ER_STD_DOMAIN_ERROR)

    Сообщение: Domain error: %s in function %s.

  • Ошибка: 3046 SQLSTATE: HY000 (ER_STD_LENGTH_ERROR)

    Сообщение: Length error: %s in function %s.

  • Ошибка: 3047 SQLSTATE: HY000 (ER_STD_INVALID_ARGUMENT)

    Сообщение: Invalid argument error: %s in function %s.

  • Ошибка: 3048 SQLSTATE: HY000 (ER_STD_OUT_OF_RANGE_ERROR)

    Сообщение: Out of range error: %s in function %s.

  • Ошибка: 3049 SQLSTATE: HY000 (ER_STD_OVERFLOW_ERROR)

    Сообщение: Overflow error error: %s in function %s.

  • Ошибка: 3050 SQLSTATE: HY000 (ER_STD_RANGE_ERROR)

    Сообщение: Range error: %s in function %s.

  • Ошибка: 3051 SQLSTATE: HY000 (ER_STD_UNDERFLOW_ERROR)

    Сообщение: Underflow error: %s in function %s.

  • Ошибка: 3052 SQLSTATE: HY000 (ER_STD_LOGIC_ERROR)

    Сообщение: Logic error: %s in function %s.

  • Ошибка: 3053 SQLSTATE: HY000 (ER_STD_RUNTIME_ERROR)

    Сообщение: Runtime error: %s in function %s.

  • Ошибка: 3054 SQLSTATE: HY000 (ER_STD_UNKNOWN_EXCEPTION)

    Сообщение: Unknown exception: %s in function %s.

  • Ошибка: 3055 SQLSTATE: HY000 (ER_GIS_DATA_WRONG_ENDIANESS)

    Сообщение: Geometry byte string must be little endian.

  • Ошибка: 3056 SQLSTATE: HY000 (ER_CHANGE_MASTER_PASSWORD_LENGTH)

    Сообщение: The password provided for the replication user exceeds the maximum length of 32 characters

  • Ошибка: 3057 SQLSTATE: 42000 (ER_USER_LOCK_WRONG_NAME)

    Сообщение: Incorrect user-level lock name '%s'.

  • Ошибка: 3058 SQLSTATE: HY000 (ER_USER_LOCK_DEADLOCK)

    Сообщение: Deadlock found when trying to get user-level lock; try rolling back transaction/releasing locks and restarting lock acquisition.

    This error is returned when the metdata locking subsystem detects a deadlock for an attempt to acquire a named lock with GET_LOCK.

  • Ошибка: 3059 SQLSTATE: HY000 (ER_REPLACE_INACCESSIBLE_ROWS)

    Сообщение: REPLACE cannot be executed as it requires deleting rows that are not in the view

  • Ошибка: 3060 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS)

    Сообщение: Do not support online operation on table with GIS index

  • Ошибка: 3061 SQLSTATE: 42000 (ER_ILLEGAL_USER_VAR)

    Сообщение: User variable name '%s' is illegal

  • Ошибка: 3062 SQLSTATE: HY000 (ER_GTID_MODE_OFF)

    Сообщение: Cannot %s when GTID_MODE = OFF.

  • Ошибка: 3064 SQLSTATE: HY000 (ER_INCORRECT_TYPE)

    Сообщение: Incorrect type for argument %s in function %s.

  • Ошибка: 3065 SQLSTATE: HY000 (ER_FIELD_IN_ORDER_NOT_SELECT)

    Сообщение: Expression #%u of ORDER BY clause is not in SELECT list, references column '%s' which is not in SELECT list; this is incompatible with %s

  • Ошибка: 3066 SQLSTATE: HY000 (ER_AGGREGATE_IN_ORDER_NOT_SELECT)

    Сообщение: Expression #%u of ORDER BY clause is not in SELECT list, contains aggregate function; this is incompatible with %s

  • Ошибка: 3067 SQLSTATE: HY000 (ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN)

    Сообщение: Supplied filter list contains a value which is not in the required format 'db_pattern.table_pattern'

  • Ошибка: 3068 SQLSTATE: 08S01 (ER_NET_OK_PACKET_TOO_LARGE)

    Сообщение: OK packet too large

  • Ошибка: 3069 SQLSTATE: HY000 (ER_INVALID_JSON_DATA)

    Сообщение: Invalid JSON data provided to function %s: %s

  • Ошибка: 3070 SQLSTATE: HY000 (ER_INVALID_GEOJSON_MISSING_MEMBER)

    Сообщение: Invalid GeoJSON data provided to function %s: Missing required member '%s'

  • Ошибка: 3071 SQLSTATE: HY000 (ER_INVALID_GEOJSON_WRONG_TYPE)

    Сообщение: Invalid GeoJSON data provided to function %s: Member '%s' must be of type '%s'

  • Ошибка: 3072 SQLSTATE: HY000 (ER_INVALID_GEOJSON_UNSPECIFIED)

    Сообщение: Invalid GeoJSON data provided to function %s

  • Ошибка: 3073 SQLSTATE: HY000 (ER_DIMENSION_UNSUPPORTED)

    Сообщение: Unsupported number of coordinate dimensions in function %s: Found %u, expected %u

  • Ошибка: 3074 SQLSTATE: HY000 (ER_SLAVE_CHANNEL_DOES_NOT_EXIST)

    Сообщение: Slave channel '%s' does not exist.

  • Ошибка: 3076 SQLSTATE: HY000 (ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG)

    Сообщение: Couldn't create channel: Channel name is either invalid or too long.

  • Ошибка: 3077 SQLSTATE: HY000 (ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY)

    Сообщение: To have multiple channels, repository cannot be of type FILE; Please check the repository configuration and convert them to TABLE.

  • Ошибка: 3079 SQLSTATE: HY000 (ER_SLAVE_MULTIPLE_CHANNELS_CMD)

    Сообщение: Multiple channels exist on the slave. Please provide channel name as an argument.

  • Ошибка: 3080 SQLSTATE: HY000 (ER_SLAVE_MAX_CHANNELS_EXCEEDED)

    Сообщение: Maximum number of replication channels allowed exceeded.

  • Ошибка: 3081 SQLSTATE: HY000 (ER_SLAVE_CHANNEL_MUST_STOP)

    Сообщение: This operation cannot be performed with running replication threads; run STOP SLAVE FOR CHANNEL '%s' first

  • Ошибка: 3082 SQLSTATE: HY000 (ER_SLAVE_CHANNEL_NOT_RUNNING)

    Сообщение: This operation requires running replication threads; configure slave and run START SLAVE FOR CHANNEL '%s'

  • Ошибка: 3083 SQLSTATE: HY000 (ER_SLAVE_CHANNEL_WAS_RUNNING)

    Сообщение: Replication thread(s) for channel '%s' are already runnning.

  • Ошибка: 3084 SQLSTATE: HY000 (ER_SLAVE_CHANNEL_WAS_NOT_RUNNING)

    Сообщение: Replication thread(s) for channel '%s' are already stopped.

  • Ошибка: 3085 SQLSTATE: HY000 (ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP)

    Сообщение: This operation cannot be performed with a running slave sql thread; run STOP SLAVE SQL_THREAD FOR CHANNEL '%s' first.

  • Ошибка: 3086 SQLSTATE: HY000 (ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER)

    Сообщение: When sql_slave_skip_counter > 0, it is not allowed to start more than one SQL thread by using 'START SLAVE [SQL_THREAD]'. Value of sql_slave_skip_counter can only be used by one SQL thread at a time. Please use 'START SLAVE [SQL_THREAD] FOR CHANNEL' to start the SQL thread which will use the value of sql_slave_skip_counter.

  • Ошибка: 3087 SQLSTATE: HY000 (ER_WRONG_FIELD_WITH_GROUP_V2)

    Сообщение: Expression #%u of %s is not in GROUP BY clause and contains nonaggregated column '%s' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

  • Ошибка: 3088 SQLSTATE: HY000 (ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2)

    Сообщение: In aggregated query without GROUP BY, expression #%u of %s contains nonaggregated column '%s'; this is incompatible with sql_mode=only_full_group_by

  • Ошибка: 3089 SQLSTATE: HY000 (ER_WARN_DEPRECATED_SYSVAR_UPDATE)

    Сообщение: Updating '%s' is deprecated. It will be made read-only in a future release.

  • Ошибка: 3090 SQLSTATE: HY000 (ER_WARN_DEPRECATED_SQLMODE)

    Сообщение: Changing sql mode '%s' is deprecated. It will be removed in a future release.

  • Ошибка: 3091 SQLSTATE: HY000 (ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID)

    Сообщение: DROP DATABASE failed; some tables may have been dropped but the database directory remains. The GTID has not been added to GTID_EXECUTED and the statement was not written to the binary log. Fix this as follows: (1) remove all files from the database directory %s; (2) SET GTID_NEXT='%s'; (3) DROP DATABASE `%s`.

  • Ошибка: 3092 SQLSTATE: HY000 (ER_GROUP_REPLICATION_CONFIGURATION)

    Сообщение: The server is not configured properly to be an active member of the group. Please see more details on error log.

    This error is reserved for future use.

  • Ошибка: 3093 SQLSTATE: HY000 (ER_GROUP_REPLICATION_RUNNING)

    Сообщение: The START GROUP_REPLICATION command failed since the group is already running.

    This error is reserved for future use.

  • Ошибка: 3094 SQLSTATE: HY000 (ER_GROUP_REPLICATION_APPLIER_INIT_ERROR)

    Сообщение: The START GROUP_REPLICATION command failed as the applier module failed to start.

    This error is reserved for future use.

  • Ошибка: 3095 SQLSTATE: HY000 (ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT)

    Сообщение: The STOP GROUP_REPLICATION command execution is incomplete: The applier thread got the stop signal while it was busy. The applier thread will stop once the current task is complete.

    This error is reserved for future use.

  • Ошибка: 3096 SQLSTATE: HY000 (ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR)

    Сообщение: The START GROUP_REPLICATION command failed as there was an error when initializing the group communication layer.

    This error is reserved for future use.

  • Ошибка: 3097 SQLSTATE: HY000 (ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR)

    Сообщение: The START GROUP_REPLICATION command failed as there was an error when joining the communication group.

    This error is reserved for future use.

  • Ошибка: 3098 SQLSTATE: HY000 (ER_BEFORE_DML_VALIDATION_ERROR)

    Сообщение: The table does not comply with the requirements by an external plugin.

    This error is reserved for future use.

  • Ошибка: 3099 SQLSTATE: HY000 (ER_PREVENTS_VARIABLE_WITHOUT_RBR)

    Сообщение: Cannot change the value of variable %s without binary log format as ROW.

    This error is reserved for future use.

  • Ошибка: 3100 SQLSTATE: HY000 (ER_RUN_HOOK_ERROR)

    Сообщение: Error on observer while running replication hook '%s'.

    This error is reserved for future use.

  • Ошибка: 3101 SQLSTATE: HY000 (ER_TRANSACTION_ROLLBACK_DURING_COMMIT)

    Сообщение: Plugin instructed the server to rollback the current transaction.

    This error is reserved for future use.

  • Ошибка: 3102 SQLSTATE: HY000 (ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED)

    Сообщение: Expression of generated column '%s' contains a disallowed function.

  • Ошибка: 3103 SQLSTATE: HY000 (ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN)

    Сообщение: INPLACE ADD or DROP of virtual columns cannot be combined with other ALTER TABLE actions

  • Ошибка: 3104 SQLSTATE: HY000 (ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN)

    Сообщение: Cannot define foreign key with %s clause on a generated column.

  • Ошибка: 3105 SQLSTATE: HY000 (ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN)

    Сообщение: The value specified for generated column '%s' in table '%s' is not allowed.

  • Ошибка: 3106 SQLSTATE: HY000 (ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN)

    Сообщение: '%s' is not supported for generated columns.

  • Ошибка: 3107 SQLSTATE: HY000 ( ER_GENERATED_COLUMN_NON_PRIOR)

    Сообщение: Generated column can refer only to generated columns defined prior to it.

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

  • Ошибка: 3108 SQLSTATE: HY000 ( ER_DEPENDENT_BY_GENERATED_COLUMN)

    Сообщение: Column '%s' has a generated column dependency.

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

  • Ошибка: 3109 SQLSTATE: HY000 ( ER_GENERATED_COLUMN_REF_AUTO_INC)

    Сообщение: Generated column '%s' cannot refer to auto-increment column.

  • Ошибка: 3110 SQLSTATE: HY000 (ER_FEATURE_NOT_AVAILABLE)

    Сообщение: The '%s' feature is not available; you need to remove '%s' or use MySQL built with '%s'

  • Ошибка: 3111 SQLSTATE: HY000 (ER_CANT_SET_GTID_MODE)

    Сообщение: SET @@GLOBAL.GTID_MODE = %s is not allowed because %s.

  • Ошибка: 3112 SQLSTATE: HY000 ( ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF)

    Сообщение: The replication receiver thread%s cannot start in AUTO_POSITION mode: this server uses @@GLOBAL.GTID_MODE = OFF.

  • Ошибка: 3113 SQLSTATE: HY000 ( ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION)

    Сообщение: Cannot replicate anonymous transaction when AUTO_POSITION = 1, at file %s, position %lld.

  • Ошибка: 3114 SQLSTATE: HY000 ( ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON)

    Сообщение: Cannot replicate anonymous transaction when @@GLOBAL.GTID_MODE = ON, at file %s, position %lld.

  • Ошибка: 3115 SQLSTATE: HY000 ( ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF)

    Сообщение: Cannot replicate GTID-transaction when @@GLOBAL.GTID_MODE = OFF, at file %s, position %lld.

  • Ошибка: 3116 SQLSTATE: HY000 ( ER_CANT_ENFORCE_GTID_CONSISTENCY_WITH_ONGOING_GTID_VIOLATING_TX )

    Сообщение: Cannot set ENFORCE_GTID_CONSISTENCY = ON because there are ongoing transactions that violate GTID consistency.

    ER_CANT_SET_ENFORCE_GTID_CONSISTENCY_ON_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS was renamed to ER_CANT_ENFORCE_GTID_CONSISTENCY_WITH_ONGOING_GTID_VIOLATING_TX.

  • Ошибка: 3117 SQLSTATE: HY000 (ER_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TX)

    Сообщение: There are ongoing transactions that violate GTID consistency.

    ER_SET_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS was renamed to ER_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TX.

  • Ошибка: 3118 SQLSTATE: HY000 ( ER_ACCOUNT_HAS_BEEN_LOCKED)

    Сообщение: Access denied for user '%s'@'%s'. Account is locked.

    Учетная запись была заблокирована CREATE USER ... ACCOUNT LOCK или ALTER USER ... ACCOUNT LOCK. Администратор может разблокировать через ALTER USER ... ACCOUNT UNLOCK.

  • Ошибка: 3119 SQLSTATE: 42000 ( ER_WRONG_TABLESPACE_NAME)

    Сообщение: Incorrect tablespace name `%s`

  • Ошибка: 3120 SQLSTATE: HY000 (ER_TABLESPACE_IS_NOT_EMPTY)

    Сообщение: Tablespace `%s` is not empty.

  • Ошибка: 3121 SQLSTATE: HY000 (ER_WRONG_FILE_NAME)

    Сообщение: Incorrect File Name '%s'.

  • Ошибка: 3122 SQLSTATE: HY000 (ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION)

    Сообщение: Inconsistent intersection points.

  • Ошибка: 3123 SQLSTATE: HY000 (ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR)

    Сообщение: Optimizer hint syntax error

  • Ошибка: 3124 SQLSTATE: HY000 (ER_WARN_BAD_MAX_EXECUTION_TIME)

    Сообщение: Unsupported MAX_EXECUTION_TIME

  • Ошибка: 3125 SQLSTATE: HY000 ( ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME)

    Сообщение: MAX_EXECUTION_TIME hint is supported by top-level standalone SELECT statements only

    Подсказка оптимизатора MAX_EXECUTION_TIME() поддержана только для оператора SELECT.

  • Ошибка: 3126 SQLSTATE: HY000 ( ER_WARN_CONFLICTING_HINT)

    Сообщение: Hint %s is ignored as conflicting/duplicated

  • Ошибка: 3127 SQLSTATE: HY000 (ER_WARN_UNKNOWN_QB_NAME)

    Сообщение: Query block name %s is not found for %s hint

  • Ошибка: 3128 SQLSTATE: HY000 (ER_UNRESOLVED_HINT_NAME)

    Сообщение: Unresolved name %s for %s hint

  • Ошибка: 3129 SQLSTATE: HY000 (ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE)

    Сообщение: Please do not modify the %s table. This is a mysql internal system table to store GTIDs for committed transactions. Modifying it can lead to an inconsistent GTID state.

  • Ошибка: 3130 SQLSTATE: HY000 (ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED)

    Сообщение: Command not supported by pluggable protocols

  • Ошибка: 3131 SQLSTATE: 42000 ( ER_LOCKING_SERVICE_WRONG_NAME)

    Сообщение: Incorrect locking service lock name '%s'.

    Имя службы блокировки было определено как NULL, пустая строка или строка длинней 64 символов. Пространство имен и имена блокировки должны быть не-NULL, непустыми и не больше, чем 64 символа.

  • Ошибка: 3132 SQLSTATE: HY000 ( ER_LOCKING_SERVICE_DEADLOCK)

    Сообщение: Deadlock found when trying to get locking service lock; try releasing locks and restarting lock acquisition.

  • Ошибка: 3133 SQLSTATE: HY000 (ER_LOCKING_SERVICE_TIMEOUT)

    Сообщение: Service lock wait timeout exceeded.

  • Ошибка: 3134 SQLSTATE: HY000 (ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED)

    Сообщение: Parameter %s exceeds the maximum number of points in a geometry (%lu) in function %s.

  • Ошибка: 3135 SQLSTATE: HY000 (ER_SQL_MODE_MERGED)

    Сообщение: 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.

  • Ошибка: 3136 SQLSTATE: HY000 ( ER_VTOKEN_PLUGIN_TOKEN_MISMATCH)

    Сообщение: Version token mismatch for %.*s. Correct value %.*s

    Клиент установил системную переменную version_tokens_session в список маркеров, которым сервер должен соответствовать, но в маркерном списке сервера есть по крайней мере одно соответствующее маркерное имя, у которого есть значение, отличающееся от того, чего требует клиент. См. раздел 6.6.5.

  • Ошибка: 3137 SQLSTATE: HY000 ( ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND)

    Сообщение: Version token %.*s not found.

    Клиент установил системную переменную version_tokens_session в список маркеров, которым сервер должен соответствовать, но маркерный список сервера пропускает по крайней мере один из этих маркеров. См. See раздел 6.6.5.

  • Ошибка: 3138 SQLSTATE: HY000 ( ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID)

    Сообщение: Variable %s cannot be changed by a client that owns a GTID. The client owns %s. Ownership is released on COMMIT or ROLLBACK.

  • Ошибка: 3139 SQLSTATE: HY000 (ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED)

    Сообщение: %s cannot be performed on channel '%s'.

  • Ошибка: 3140 SQLSTATE: 22032 (ER_INVALID_JSON_TEXT)

    Сообщение: Invalid JSON text: "%s" at position %u in value for column '%s'.

  • Ошибка: 3141 SQLSTATE: 22032 ( ER_INVALID_JSON_TEXT_IN_PARAM)

    Сообщение: Invalid JSON text in argument %u to function %s: "%s" at position %u.%s

  • Ошибка: 3142 SQLSTATE: HY000 (ER_INVALID_JSON_BINARY_DATA)

    Сообщение: The JSON binary value contains invalid data.

  • Ошибка: 3143 SQLSTATE: 42000 (ER_INVALID_JSON_PATH)

    Сообщение: Invalid JSON path expression. The error is around character position %u.%s

  • Ошибка: 3144 SQLSTATE: 22032 (ER_INVALID_JSON_CHARSET)

    Сообщение: Cannot create a JSON value from a string with CHARACTER SET '%s'.

  • Ошибка: 3145 SQLSTATE: 22032 (ER_INVALID_JSON_CHARSET_IN_FUNCTION)

    Сообщение: Invalid JSON character data provided to function %s: '%s'; utf8 is required.

  • Ошибка: 3146 SQLSTATE: 22032 (ER_INVALID_TYPE_FOR_JSON)

    Сообщение: Invalid data type for JSON data in argument %u to function %s; a JSON string or JSON type is required.

  • Ошибка: 3147 SQLSTATE: 22032 (ER_INVALID_CAST_TO_JSON)

    Сообщение: Cannot CAST value to JSON.

  • Ошибка: 3148 SQLSTATE: 42000 (ER_INVALID_JSON_PATH_CHARSET)

    Сообщение: A path expression must be encoded in the utf8 character set. The path expression '%s' is encoded in character set '%s'.

  • Ошибка: 3149 SQLSTATE: 42000 (ER_INVALID_JSON_PATH_WILDCARD)

    Сообщение: In this situation, path expressions may not contain the * and ** tokens.

  • Ошибка: 3150 SQLSTATE: 22032 (ER_JSON_VALUE_TOO_BIG)

    Сообщение: The JSON value is too big to be stored in a JSON column.

  • Ошибка: 3151 SQLSTATE: 22032 (ER_JSON_KEY_TOO_BIG)

    Сообщение: The JSON object contains a key name that is too long.

  • Ошибка: 3152 SQLSTATE: 42000 (ER_JSON_USED_AS_KEY)

    Сообщение: JSON column '%s' cannot be used in key specification.

  • Ошибка: 3153 SQLSTATE: 42000 (ER_JSON_VACUOUS_PATH)

    Сообщение: The path expression '$' is not allowed in this context.

  • Ошибка: 3154 SQLSTATE: 42000 (ER_JSON_BAD_ONE_OR_ALL_ARG)

    Сообщение: The oneOrAll argument to %s may take these values: 'one' or 'all'.

  • Ошибка: 3155 SQLSTATE: 22003 (ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE)

    Сообщение: Out of range JSON value for CAST to %s%s from column %s at row %ld

  • Ошибка: 3156 SQLSTATE: 22018 ( ER_INVALID_JSON_VALUE_FOR_CAST)

    Сообщение: Invalid JSON value for CAST to %s%s from column %s at row %ld

  • Ошибка: 3157 SQLSTATE: 22032 (ER_JSON_DOCUMENT_TOO_DEEP)

    Сообщение: The JSON document exceeds the maximum depth.

  • Ошибка: 3158 SQLSTATE: 22032 (ER_JSON_DOCUMENT_NULL_KEY)

    Сообщение: JSON documents may not contain NULL member names.

  • Ошибка: 3159 SQLSTATE: HY000 ( ER_SECURE_TRANSPORT_REQUIRED)

    Сообщение: Connections using insecure transport are prohibited while --require_secure_transport=ON.

    С системной переменной require_secure_transport клиенты могут соединиться только используя безопасный транспорт. Квалифицированные соединения это те, которые используют SSL, файл сокета Unix или совместно используемую память.

  • Ошибка: 3160 SQLSTATE: HY000 ( ER_NO_SECURE_TRANSPORTS_CONFIGURED)

    Сообщение: No secure transports (SSL or Shared Memory) are configured, unable to set --require_secure_transport=ON.

    Системная переменная require_secure_transport не может быть включена, если сервер не поддерживает по крайней мере один безопасный транспорт. Сконфигурируйте сервер с необходимыми ключами/сертификатами SSL, чтобы включить соединения SSL, или включите системную переменную shared_memory, чтобы разрешить соединения по совместно используемой памяти.

  • Ошибка: 3161 SQLSTATE: HY000 ( ER_DISABLED_STORAGE_ENGINE)

    Сообщение: Storage engine %s is disabled (Table creation is disallowed).

    Была предпринята попытка составить таблицу или табличное пространство, используя механизм хранения, перечисленный в значении системной переменной disabled_storage_engines, или изменить существующую таблицу (или табличное пространство) к такому механизму. Выберите иной механизм хранения.

  • Ошибка: 3162 SQLSTATE: HY000 ( ER_USER_DOES_NOT_EXIST)

    Сообщение: User %s does not exist.

  • Ошибка: 3163 SQLSTATE: HY000 ( ER_USER_ALREADY_EXISTS)

    Сообщение: User %s already exists.

  • Ошибка: 3164 SQLSTATE: HY000 (ER_AUDIT_API_ABORT )

    Сообщение: Aborted by Audit API ('%s';%d).

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

  • Ошибка: 3165 SQLSTATE: 42000 ( ER_INVALID_JSON_PATH_ARRAY_CELL)

    Сообщение: A path expression is not a path to a cell in an array.

  • Ошибка: 3166 SQLSTATE: HY000 ( ER_BUFPOOL_RESIZE_INPROGRESS)

    Сообщение: Another buffer pool resize is already in progress.

  • Ошибка: 3167 SQLSTATE: HY000 ( ER_FEATURE_DISABLED_SEE_DOC)

    Сообщение: The '%s' feature is disabled; see the documentation for '%s'

  • Ошибка: 3168 SQLSTATE: HY000 (ER_SERVER_ISNT_AVAILABLE)

    Сообщение: Server isn't available

  • Ошибка: 3169 SQLSTATE: HY000 (ER_SESSION_WAS_KILLED)

    Сообщение: Session was killed

  • Ошибка: 3170 SQLSTATE: HY000 (ER_CAPACITY_EXCEEDED)

    Сообщение: Memory capacity of %llu bytes for '%s' exceeded. %s

  • Ошибка: 3171 SQLSTATE: HY000 ( ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER)

    Сообщение: Range optimization was not done for this query.

  • Ошибка: 3173 SQLSTATE: HY000 ( ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID)

    Сообщение: The client holds ownership of the GTID %s. Therefore, WAIT_FOR_EXECUTED_GTID_SET cannot wait for this GTID.

  • Ошибка: 3174 SQLSTATE: HY000 ( ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL)

    Сообщение: Cannot add foreign key on the base column of indexed virtual column.

  • Ошибка: 3175 SQLSTATE: HY000 ( ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT)

    Сообщение: Cannot create index on virtual column whose base column has foreign constraint.

  • Ошибка: 3176 SQLSTATE: HY000 ( ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE)

    Сообщение: Please do not modify the %s table with an XA transaction. This is an internal system table used to store GTIDs for committed transactions. Although modifying it can lead to an inconsistent GTID state, if neccessary you can modify it with a non-XA transaction.

  • Ошибка: 3177 SQLSTATE: HY000 (ER_LOCK_REFUSED_BY_ENGINE)

    Сообщение: Lock acquisition refused by storage engine.

  • Ошибка: 3178 SQLSTATE: HY000 (ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN)

    Сообщение: ADD COLUMN col...VIRTUAL, ADD INDEX(col)

  • Ошибка: 3179 SQLSTATE: HY000 (ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE)

    Сообщение: Master key rotation is not supported by storage engine.

  • Ошибка: 3181 SQLSTATE: HY000 (ER_MASTER_KEY_ROTATION_BINLOG_FAILED)

    Сообщение: Write to binlog failed. However, master key rotation has been completed successfully.

  • Ошибка: 3182 SQLSTATE: HY000 (ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE)

    Сообщение: Storage engine is not available.

  • Ошибка: 3183 SQLSTATE: HY000 (ER_TABLESPACE_CANNOT_ENCRYPT)

    Сообщение: This tablespace can't be encrypted.

  • Ошибка: 3184 SQLSTATE: HY000 (ER_INVALID_ENCRYPTION_OPTION)

    Сообщение: Invalid encryption option.

  • Ошибка: 3185 SQLSTATE: HY000 (ER_CANNOT_FIND_KEY_IN_KEYRING)

    Сообщение: Can't find master key from keyring, please check keyring plugin is loaded.

  • Ошибка: 3186 SQLSTATE: HY000 (ER_CAPACITY_EXCEEDED_IN_PARSER)

    Сообщение: Parser bailed out for this query.

  • Ошибка: 3187 SQLSTATE: HY000 (ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE)

    Сообщение: Cannot alter encryption attribute by inplace algorithm.

  • Ошибка: 3188 SQLSTATE: HY000 (ER_KEYRING_UDF_KEYRING_SERVICE_ERROR)

    Сообщение: Function '%s' failed because underlying keyring service returned an error. Please check if a keyring plugin is installed and that provided arguments are valid for the keyring you are using.

  • Ошибка: 3189 SQLSTATE: HY000 (ER_USER_COLUMN_OLD_LENGTH)

    Сообщение: It seems that your db schema is old. The %s column is 77 characters long and should be 93 characters long. Please run mysql_upgrade.

  • Ошибка: 3190 SQLSTATE: HY000 (ER_CANT_RESET_MASTER)

    Сообщение: RESET MASTER is not allowed because %s.

  • Ошибка: 3191 SQLSTATE: HY000 (ER_GROUP_REPLICATION_MAX_GROUP_SIZE)

    Сообщение: The START GROUP_REPLICATION command failed since the group already has 9 members.

  • Ошибка: 3192 SQLSTATE: HY000 (ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED)

    Сообщение: Cannot add foreign key on the base column of stored column.

  • Ошибка: 3193 SQLSTATE: HY000 (ER_TABLE_REFERENCED)

    Сообщение: Cannot complete the operation because table is referenced by another connection.

  • Ошибка: 3500 SQLSTATE: HY000 (ER_UNSUPPORT_COMPRESSED_TEMPORARY_TABLE)

    Сообщение: CREATE TEMPORARY TABLE is not allowed with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.

  • Ошибка: 3501 SQLSTATE: HY000 (ER_ACL_OPERATION_FAILED)

    Сообщение: The ACL operation failed due to the following error from SE: errcode %d - %s

  • Ошибка: 3502 SQLSTATE: HY000 (ER_UNSUPPORTED_INDEX_ALGORITHM)

    Сообщение: This storage engine does not support the %s index algorithm, storage engine default was used instead.

  • Ошибка: 3503 SQLSTATE: 42Y07 (ER_NO_SUCH_DB)

    Сообщение: Database '%s' doesn't exist

  • Ошибка: 3504 SQLSTATE: HY000 (ER_TOO_BIG_ENUM)

    Сообщение: Too many enumeration values for column %s.

  • Ошибка: 3505 SQLSTATE: HY000 (ER_TOO_LONG_SET_ENUM_VALUE)

    Сообщение: Too long enumeration/set value for column %s.

  • Ошибка: 3506 SQLSTATE: HY000 (ER_INVALID_DD_OBJECT)

    Сообщение: %s dictionary object is invalid. (%s)

  • Ошибка: 3507 SQLSTATE: HY000 (ER_UPDATING_DD_TABLE)

    Сообщение: Failed to update %s dictionary object.

  • Ошибка: 3508 SQLSTATE: HY000 (ER_INVALID_DD_OBJECT_ID)

    Сообщение: Dictionary object id (%lu) does not exist.

  • Ошибка: 3509 SQLSTATE: HY000 (ER_INVALID_DD_OBJECT_NAME)

    Сообщение: Dictionary object name '%s' is invalid. (%s)

  • Ошибка: 3510 SQLSTATE: HY000 (ER_TABLESPACE_MISSING_WITH_NAME)

    Сообщение: Tablespace %s doesn't exist.

  • Ошибка: 3511 SQLSTATE: HY000 (ER_TOO_LONG_ROUTINE_COMMENT)

    Сообщение: Comment for routine '%s' is too long (max = %lu)

  • Ошибка: 3512 SQLSTATE: HY000 (ER_SP_LOAD_FAILED)

    Сообщение: Failed to load routine '%s'.

  • Ошибка: 3513 SQLSTATE: HY000 (ER_INVALID_BITWISE_OPERANDS_SIZE)

    Сообщение: Binary operands of bitwise operators must be of equal length

  • Ошибка: 3514 SQLSTATE: HY000 (ER_INVALID_BITWISE_AGGREGATE_OPERANDS_SIZE)

    Сообщение: Aggregate bitwise functions cannot accept arguments longer than 511 bytes; consider using the SUBSTRING() function

  • Ошибка: 3515 SQLSTATE: HY000 (ER_WARN_UNSUPPORTED_HINT)

    Сообщение: Hints aren't supported in %s

  • Ошибка: 3516 SQLSTATE: 22S01 (ER_UNEXPECTED_GEOMETRY_TYPE)

    Сообщение: %s value is a geometry of unexpected type %s in %s.

  • Ошибка: 3517 SQLSTATE: SR002 (ER_SRS_PARSE_ERROR)

    Сообщение: Can't parse the spatial reference system definition of SRID %u.

  • Ошибка: 3518 SQLSTATE: SR003 (ER_SRS_PROJ_PARAMETER_MISSING)

    Сообщение: The spatial reference system definition for SRID %u does not specify the mandatory %s (EPSG %u) projection parameter.

  • Ошибка: 3519 SQLSTATE: 01000 (ER_WARN_SRS_NOT_FOUND)

    Сообщение: There's no spatial reference system with SRID %u. Calculations in function %s will be done in SRID 0.

  • Ошибка: 3520 SQLSTATE: 22S00 (ER_SRS_NOT_CARTESIAN)

    Сообщение: Function %s is only defined for Cartesian spatial reference systems, but one of its arguments is in SRID %u, which is not Cartesian.

  • Ошибка: 3521 SQLSTATE: SR001 (ER_SRS_NOT_CARTESIAN_UNDEFINED)

    Сообщение: Function %s is only defined for Cartesian spatial reference systems, but one of its arguments is in SRID %u, which has not been defined.

  • Ошибка: 3522 SQLSTATE: HY000 (ER_PK_INDEX_CANT_BE_INVISIBLE)

    Сообщение: A primary key index cannot be invisible

  • Ошибка: 3523 SQLSTATE: HY000 (ER_UNKNOWN_AUTHID)

    Сообщение: Unknown authorization ID `%s`@`%s`

  • Ошибка: 3524 SQLSTATE: HY000 (ER_FAILED_ROLE_GRANT)

    Сообщение: Failed to grant %s` to %s

  • Ошибка: 3525 SQLSTATE: HY000 (ER_OPEN_ROLE_TABLES)

    Сообщение: Failed to open the security system tables

  • Ошибка: 3526 SQLSTATE: HY000 (ER_FAILED_DEFAULT_ROLES)

    Сообщение: Failed to set default roles

  • Ошибка: 3527 SQLSTATE: HY000 (ER_COMPONENTS_NO_SCHEME)

    Сообщение: Cannot find schema in specified URN: '%s'.

  • Ошибка: 3528 SQLSTATE: HY000 (ER_COMPONENTS_NO_SCHEME_SERVICE)

    Сообщение: Cannot acquire scheme load service implementation for schema '%s' in specified URN: '%s'.

  • Ошибка: 3529 SQLSTATE: HY000 (ER_COMPONENTS_CANT_LOAD)

    Сообщение: Cannot load component from specified URN: '%s'.

  • Ошибка: 3530 SQLSTATE: HY000 (ER_ROLE_NOT_GRANTED)

    Сообщение: `%s`@`%s` is not granted to `%s`@`%s`

  • Ошибка: 3531 SQLSTATE: HY000 (ER_FAILED_REVOKE_ROLE)

    Сообщение: Could not revoke role from `%s`@`%s`

  • Ошибка: 3532 SQLSTATE: HY000 (ER_RENAME_ROLE)

    Сообщение: Renaming of a role identifier is forbidden

  • Ошибка: 3533 SQLSTATE: HY000 (ER_COMPONENTS_CANT_ACQUIRE_SERVICE_IMPLEMENTATION)

    Сообщение: Cannot acquire specified service implementation: '%s'.

  • Ошибка: 3534 SQLSTATE: HY000 (ER_COMPONENTS_CANT_SATISFY_DEPENDENCY)

    Сообщение: Cannot satisfy dependency for service '%s' required by component '%s'.

  • Ошибка: 3535 SQLSTATE: HY000 (ER_COMPONENTS_LOAD_CANT_REGISTER_SERVICE_IMPLEMENTATION)

    Сообщение: Cannot register service implementation '%s' provided by component '%s'.

  • Ошибка: 3536 SQLSTATE: HY000 (ER_COMPONENTS_LOAD_CANT_INITIALIZE)

    Сообщение: Initialization method provided by component '%s' failed.

  • Ошибка: 3537 SQLSTATE: HY000 (ER_COMPONENTS_UNLOAD_NOT_LOADED)

    Сообщение: Component specified by URN '%s' to unload has not been loaded before.

  • Ошибка: 3538 SQLSTATE: HY000 (ER_COMPONENTS_UNLOAD_CANT_DEINITIALIZE)

    Сообщение: De-initialization method provided by component '%s' failed.

  • Ошибка: 3539 SQLSTATE: HY000 (ER_COMPONENTS_CANT_RELEASE_SERVICE)

    Сообщение: Release of previously acquired service implementation failed.

  • Ошибка: 3540 SQLSTATE: HY000 (ER_COMPONENTS_UNLOAD_CANT_UNREGISTER_SERVICE)

    Сообщение: Unregistration of service implementation '%s' provided by component '%s' failed during unloading of the component.

  • Ошибка: 3541 SQLSTATE: HY000 (ER_COMPONENTS_CANT_UNLOAD)

    Сообщение: Cannot unload component from specified URN: '%s'.

  • Ошибка: 3542 SQLSTATE: HY000 (ER_WARN_UNLOAD_THE_NOT_PERSISTED)

    Сообщение: The Persistent Dynamic Loader was used to unload a component '%s', but it was not used to load that component before.

  • Ошибка: 3543 SQLSTATE: HY000 (ER_COMPONENT_TABLE_INCORRECT)

    Сообщение: The mysql.component table is missing or has an incorrect definition.

  • Ошибка: 3544 SQLSTATE: HY000 (ER_COMPONENT_MANIPULATE_ROW_FAILED)

    Сообщение: Failed to manipulate component '%s' persistence data. Error code %d from storage engine.

  • Ошибка: 3545 SQLSTATE: HY000 (ER_COMPONENTS_UNLOAD_DUPLICATE_IN_GROUP)

    Сообщение: The component with specified URN: '%s' was specified in group more than once.

  • Ошибка: 3546 SQLSTATE: HY000 (ER_CANT_SET_GTID_PURGED_DUE_SETS_CONSTRAINTS)

    Сообщение: @@GLOBAL.GTID_PURGED cannot be changed: %s

  • Ошибка: 3547 SQLSTATE: HY000 (ER_CANNOT_LOCK_USER_MANAGEMENT_CACHES)

    Сообщение: Can not lock user management caches for processing.

  • Ошибка: 3548 SQLSTATE: SR001 (ER_SRS_NOT_FOUND)

    Сообщение: There's no spatial reference system with SRID %u.

  • Ошибка: 3549 SQLSTATE: HY000 (ER_VARIABLE_NOT_PERSISTED)

    Сообщение: Variables cannot be persisted. Please retry.

  • Ошибка: 3550 SQLSTATE: HY000 (ER_IS_QUERY_INVALID_CLAUSE)

    Сообщение: Information schema queries do not support the '%s' clause.

  • Ошибка: 3551 SQLSTATE: HY000 (ER_UNABLE_TO_STORE_STATISTICS)

    Сообщение: Unable to store dynamic %s statistics into data dictionary.

  • Ошибка: 3552 SQLSTATE: HY000 (ER_NO_SYSTEM_SCHEMA_ACCESS)

    Сообщение: Access to system schema '%s' is rejected.

  • Ошибка: 3553 SQLSTATE: HY000 (ER_NO_SYSTEM_TABLESPACE_ACCESS)

    Сообщение: Access to system tablespace '%s' is rejected.

  • Ошибка: 3554 SQLSTATE: HY000 ( ER_NO_SYSTEM_TABLE_ACCESS)

    Сообщение: Access to %s '%s.%s' is rejected.

  • Ошибка: 3555 SQLSTATE: HY000 ( ER_NO_SYSTEM_TABLE_ACCESS_FOR_DICTIONARY_TABLE)

    Сообщение: data dictionary table

    ER_NO_SYSTEM_TABLE_ACCESS_FOR_DICTIONARY_TABLEдобавлена в 8.0.1.

  • Ошибка: 3556 SQLSTATE: HY000 ( ER_NO_SYSTEM_TABLE_ACCESS_FOR_SYSTEM_TABLE)

    Сообщение: system table

    ER_NO_SYSTEM_TABLE_ACCESS_FOR_SYSTEM_TABLEдобавлена в 8.0.1.

  • Ошибка: 3557 SQLSTATE: HY000 ( ER_NO_SYSTEM_TABLE_ACCESS_FOR_TABLE)

    Сообщение: table

    ER_NO_SYSTEM_TABLE_ACCESS_FOR_TABLE добавлена в 8.0.1.

B.4. Коды ошибки и сообщения клиента

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

  • Значения ошибок и символы в круглых скобках соответствуют определениям в файле include/errmsg.h исходных текстов MySQL.

  • Сообщения соответствуют сообщениям об ошибках, которые перечислены в файле libmysql/errmsg.c. %d и %s представляют числа и строки, соответственно, которыми заменятся в сообщении, когда оно выведено на экран.

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

  • Ошибка: 2000 (CR_UNKNOWN_ERROR)

    Сообщение: Unknown MySQL error

  • Ошибка: 2001 (CR_SOCKET_CREATE_ERROR)

    Сообщение: Can't create UNIX socket (%d)

  • Ошибка: 2002 (CR_CONNECTION_ERROR)

    Сообщение: Can't connect to local MySQL server through socket '%s' (%d)

  • Ошибка: 2003 (CR_CONN_HOST_ERROR)

    Сообщение: Can't connect to MySQL server on '%s' (%d)

  • Ошибка: 2004 (CR_IPSOCK_ERROR)

    Сообщение: Can't create TCP/IP socket (%d)

  • Ошибка: 2005 (CR_UNKNOWN_HOST)

    Сообщение: Unknown MySQL server host '%s' (%d)

  • Ошибка: 2006 (CR_SERVER_GONE_ERROR)

    Сообщение: MySQL server has gone away

  • Ошибка: 2007 (CR_VERSION_ERROR)

    Сообщение: Protocol mismatch; server version = %d, client version = %d

  • Ошибка: 2008 (CR_OUT_OF_MEMORY)

    Сообщение: MySQL client ran out of memory

  • Ошибка: 2009 (CR_WRONG_HOST_INFO)

    Сообщение: Wrong host info

  • Ошибка: 2010 (CR_LOCALHOST_CONNECTION)

    Сообщение: Localhost via UNIX socket

  • Ошибка: 2011 (CR_TCP_CONNECTION)

    Сообщение: %s via TCP/IP

  • Ошибка: 2012 (CR_SERVER_HANDSHAKE_ERR)

    Сообщение: Error in server handshake

  • Ошибка: 2013 (CR_SERVER_LOST)

    Сообщение: Lost connection to MySQL server during query

  • Ошибка: 2014 (CR_COMMANDS_OUT_OF_SYNC)

    Сообщение: Commands out of sync; you can't run this command now

  • Ошибка: 2015 (CR_NAMEDPIPE_CONNECTION)

    Сообщение: Named pipe: %s

  • Ошибка: 2016 (CR_NAMEDPIPEWAIT_ERROR)

    Сообщение: Can't wait for named pipe to host: %s pipe: %s (%lu)

  • Ошибка: 2017 (CR_NAMEDPIPEOPEN_ERROR)

    Сообщение: Can't open named pipe to host: %s pipe: %s (%lu)

  • Ошибка: 2018 (CR_NAMEDPIPESETSTATE_ERROR)

    Сообщение: Can't set state of named pipe to host: %s pipe: %s (%lu)

  • Ошибка: 2019 (CR_CANT_READ_CHARSET)

    Сообщение: Can't initialize character set %s (path: %s)

  • Ошибка: 2020 (CR_NET_PACKET_TOO_LARGE)

    Сообщение: Got packet bigger than 'max_allowed_packet' bytes

  • Ошибка: 2021 (CR_EMBEDDED_CONNECTION)

    Сообщение: Embedded server

  • Ошибка: 2022 (CR_PROBE_SLAVE_STATUS)

    Сообщение: Error on SHOW SLAVE STATUS:

  • Ошибка: 2023 (CR_PROBE_SLAVE_HOSTS)

    Сообщение: Error on SHOW SLAVE HOSTS:

  • Ошибка: 2024 (CR_PROBE_SLAVE_CONNECT)

    Сообщение: Error connecting to slave:

  • Ошибка: 2025 (CR_PROBE_MASTER_CONNECT)

    Сообщение: Error connecting to master:

  • Ошибка: 2026 (CR_SSL_CONNECTION_ERROR)

    Сообщение: SSL connection error: %s

  • Ошибка: 2027 (CR_MALFORMED_PACKET)

    Сообщение: Malformed packet

  • Ошибка: 2028 (CR_WRONG_LICENSE)

    Сообщение: This client library is licensed only for use with MySQL servers having '%s' license

  • Ошибка: 2029 (CR_NULL_POINTER)

    Сообщение: Invalid use of null pointer

  • Ошибка: 2030 (CR_NO_PREPARE_STMT)

    Сообщение: Statement not prepared

  • Ошибка: 2031 (CR_PARAMS_NOT_BOUND)

    Сообщение: No data supplied for parameters in prepared statement

  • Ошибка: 2032 (CR_DATA_TRUNCATED)

    Сообщение: Data truncated

  • Ошибка: 2033 (CR_NO_PARAMETERS_EXISTS)

    Сообщение: No parameters exist in the statement

  • Ошибка: 2034 ( CR_INVALID_PARAMETER_NO)

    Сообщение: Invalid parameter number

    Номер столбца для mysql_stmt_fetch_column() неправильный. Число параметров для mysql_stmt_send_long_data() неправильное.

    Имя ключа было пустое, или количество данных о признаке соединения для mysql_options4() превышает предел в 64 КБ.

  • Ошибка: 2035 (CR_INVALID_BUFFER_USE)

    Сообщение: Can't send long data for non-string/non-binary data types (parameter: %d)

  • Ошибка: 2036 (CR_UNSUPPORTED_PARAM_TYPE)

    Сообщение: Using unsupported buffer type: %d (parameter: %d)

  • Ошибка: 2037 (CR_SHARED_MEMORY_CONNECTION)

    Сообщение: Shared memory: %s

  • Ошибка: 2038 (CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR)

    Сообщение: Can't open shared memory; client could not create request event (%lu)

  • Ошибка: 2039 (CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR)

    Сообщение: Can't open shared memory; no answer event received from server (%lu)

  • Ошибка: 2040 (CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR)

    Сообщение: Can't open shared memory; server could not allocate file mapping (%lu)

  • Ошибка: 2041 (CR_SHARED_MEMORY_CONNECT_MAP_ERROR)

    Сообщение: Can't open shared memory; server could not get pointer to file mapping (%lu)

  • Ошибка: 2042 (CR_SHARED_MEMORY_FILE_MAP_ERROR)

    Сообщение: Can't open shared memory; client could not allocate file mapping (%lu)

  • Ошибка: 2043 (CR_SHARED_MEMORY_MAP_ERROR)

    Сообщение: Can't open shared memory; client could not get pointer to file mapping (%lu)

  • Ошибка: 2044 (CR_SHARED_MEMORY_EVENT_ERROR)

    Сообщение: Can't open shared memory; client could not create %s event (%lu)

  • Ошибка: 2045 (CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR)

    Сообщение: Can't open shared memory; no answer from server (%lu)

  • Ошибка: 2046 (CR_SHARED_MEMORY_CONNECT_SET_ERROR)

    Сообщение: Can't open shared memory; cannot send request event to server (%lu)

  • Ошибка: 2047 (CR_CONN_UNKNOW_PROTOCOL)

    Сообщение: Wrong or unknown protocol

  • Ошибка: 2048 (CR_INVALID_CONN_HANDLE)

    Сообщение: Invalid connection handle

  • Ошибка: 2049 (CR_UNUSED_1)

    Сообщение: Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)

  • Ошибка: 2050 (CR_FETCH_CANCELED)

    Сообщение: Row retrieval was canceled by mysql_stmt_close() call

  • Ошибка: 2051 (CR_NO_DATA)

    Сообщение: Attempt to read column without prior row fetch

  • Ошибка: 2052 (CR_NO_STMT_METADATA)

    Сообщение: Prepared statement contains no metadata

  • Ошибка: 2053 (CR_NO_RESULT_SET)

    Сообщение: Attempt to read a row while there is no result set associated with the statement

  • Ошибка: 2054 (CR_NOT_IMPLEMENTED)

    Сообщение: This feature is not implemented yet

  • Ошибка: 2055 (CR_SERVER_LOST_EXTENDED)

    Сообщение: Lost connection to MySQL server at '%s', system error: %d

  • Ошибка: 2056 (CR_STMT_CLOSED)

    Сообщение: Statement closed indirectly because of a preceding %s() call

  • Ошибка: 2057 (CR_NEW_STMT_METADATA)

    Сообщение: The number of columns in the result set differs from the number of bound buffers. You must reset the statement, rebind the result set columns, and execute the statement again

  • Ошибка: 2058 (CR_ALREADY_CONNECTED)

    Сообщение: This handle is already connected. Use a separate handle for each connection.

  • Ошибка: 2059 ( CR_AUTH_PLUGIN_CANNOT_LOAD)

    Сообщение: Authentication plugin '%s' cannot be loaded: %s

  • Ошибка: 2060 ( CR_DUPLICATE_CONNECTION_ATTR)

    Сообщение: There is an attribute with the same name already

    Дубликат имени атрибута соединения был определен для mysql_options4().

  • Ошибка: 2061 (CR_AUTH_PLUGIN_ERR )

    Сообщение: Authentication plugin '%s' reported error: %s

  • Ошибка: 2062 (CR_INSECURE_API_ERR )

    Сообщение: Insecure API function call: '%s' Use instead: '%s'

    Был обнаружен опасный вызов функции. Измените приложение, чтобы использовать предложенную альтернативную функцию вместо этого.

B.5. Проблемы и распространенные ошибки

Этот раздел перечисляет некоторые типичные проблемы и сообщения об ошибках, с которыми Вы можете столкнуться. Это описывает, как определить причины проблем и что сделать, чтобы решить их.

B.5.1. Как определить, что вызывает проблему

Когда Вы сталкиваетесь с проблемой, первая вещь, которую Вы должны сделать, состоит в том, чтобы узнать, какая программа или элемент оборудования вызывают ее:

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

    • Клавиатура не работает. Это может обычно проверяться, нажимая клавишу caps lock. Если индикатор Caps Lock не изменяется, Вы должны заменить свою клавиатуру. Прежде, чем это делать, Вы должны попытаться перезапустить свой компьютер и проверить все кабели к клавиатуре.

    • Указатель мыши не перемещается.
    • Машина не отвечает на ping с отдаленной машины.
    • Другие программы, которые не связаны с MySQL, не ведут себя правильно.
    • Ваша система перезапущена неожиданно. Дефектная программа на уровне пользователя никогда не должна быть в состоянии свалить всю Вашу систему. Это не касается Windows.

    В этом случае, Вы должны проверить все Ваши кабели и выполнить некоторые диагностические инструменты, чтобы проверить Ваши аппаратные средства! Вы должны также проверить, есть ли какие-либо обновления или пакеты обновлений для Вашей операционной системы, которые могли бы, вероятно, решить Вашу проблему. Проверьте также что все Ваши библиотеки (такие, как glibc) достаточно современны.

    Всегда хорошо использовать машину с памятью ECC, чтобы быстро обнаружить проблемы с памятью.

  • Если Ваша клавиатура заблокирована, Вы можете быть в состоянии восстановить систему, обращаясь к Вашей машине с другой машины и выполняя команду kbd_mode -a.
  • Пожалуйста, исследуйте файл системного журнала (/var/log/messages) по причинам Вашей проблемы. Если Вы думаете, что проблема находится в MySQL, Вы должны также исследовать файлы системного журнала MySQL. См. раздел 6.4.
  • Если Вы не думаете, что у Вас есть проблемы аппаратных средств, Вы должны попытаться узнать, какая программа вызывает проблемы. Попытайтесь использовать top, ps , Task Manager или подобные приложения, чтобы проверить, какая программа занимает весь ресурс центрального процессора или блокирует машину.
  • Используйте top, df или подобную программу, чтобы проверить, хватает ли памяти, дискового пространства, дескрипторов файла или некоторого другого критического ресурса.
  • Если проблема в некотором безудержном процессе, Вы можете всегда попытаться уничтожить его. Если это не получается, в операционной системе есть, вероятно, ошибка.

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

Попытайтесь описать подробно, какая программа не работает и все признаки, которые Вы видите. Мы получили в прошлом много отчетов об ошибках, которые заявляют только "ничего не работает". Это не предоставляет информации о том, что могло быть проблемой.

Если программа терпит неудачу, всегда полезно знать следующую информацию:

  • Имеется ли segmentation fault (дамп ядра)?

  • Программа занимает все доступное время центрального процессора? Сверьтесь с top. Позвольте программе выполяться некоторое время, она может просто оценивать что-то в вычислительном отношении интенсивное.
  • Если сервер mysqld вызывает проблемы, Вы можете получить какой-либо ответ от него с помощью mysqladmin -u root ping или mysqladmin -u root processlist?
  • Что говорит программа клиента, когда Вы пытаетесь соединиться с сервером MySQL? Попробуйте mysql , например. Действительно ли клиент создает затор? Вы получаете какой-либо вывод из программы?

Посылая отчет об ошибках, Вы должны следовать схеме, описанной в разделе 1.7.

B.5.2. Распространенные ошибки при использовании программ MySQL

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

B.5.2.1. Access denied

Ошибка Access denied может иметь много причин. Часто проблема связана с учетными записями MySQL, которые сервер разрешает программам клиента использовать, соединяясь. См. разделы 7.2 и 7.2.8.

B.5.2.2. Can't connect to [local] MySQL server

Клиент MySQL на Unix может соединиться с сервером mysqld двумя различными способами: используя файл сокета Unix, чтобы соединиться через файл в файловой системе (значение по умолчанию /tmp/mysql.sock), или по TCP/IP, который соединяется через номер порта. Соединение файла сокета Unix быстрее, чем TCP/IP, но может использоваться только, соединяясь с сервером на том же самом компьютере. Файл сокета Unix используется, если Вы не определяете имя хоста или если определяете специальное имя хоста localhost.

Если сервер MySQL работает на Windows, Вы можете соединиться по TCP/IP. Если сервер запущен с опцией --enable-named-pipe, Вы можете также соединиться по именованному каналу, если Вы выполняете клиента на том компьютере, на котором работает сервер. Название названного канала MySQL по умолчанию. Если Вы не задаете имя хоста, соединяясь с mysqld, клиент MySQL сначала пытается соединиться с названным каналом. Если это не работает, он соединяется с портом TCP/IP. Вы можете вызвать использование именованных каналов в Windows при использовании . как имени хоста.

Ошибка (2002) Can't connect to ... обычно сообщает, что нет никакого сервера MySQL, работающего в системе, или что Вы используете неправильное имя файла сокета Unix или номер порта TCP/IP, пытаясь соединиться с сервером. Вы должны также проверить, что порт TCP/IP, который Вы используете, не был заблокирован брандмауэром или службой блокирования порта.

Ошибка (2003) Can't connect to MySQL server on 'server' (10061) указывает, что сетевое соединение не работает. Вы должны проверить, что есть выполненяемый сервер MySQL, что у него есть включенные сетевые соединения, и что сетевой порт, который Вы определили, является тем, который настроен на сервере.

Начните с проверки того, есть ли процесс mysqld, работающий на Вашем хосте сервера. Используйте ps xa | grep mysqld в Unix или Task Manager в Windows. Если нет такого процесса, Вы должны запустить сервер. См. раздел 2.9.2.

Если процесс mysqld работает, Вы можете проверить это, пробуя следующие команды. Номер порта или имя файла сокета Unix могут отличаться в Вашей установке. host_ip представляет IP-адрес машины, где сервер работает.

shell> mysqladmin version
shell> mysqladmin variables
shell> mysqladmin -h `hostname` version variables
shell> mysqladmin -h `hostname` --port=3306 version
shell> mysqladmin -h host_ip version
shell> mysqladmin --protocol=SOCKET --socket=/tmp/mysql.sock version
Отметьте использование обратных кавычек, а не кавычек с командой hostname: они заставляют вывод hostname (то есть, текущее имя хоста) быть замененным в команде mysqladmin. Если Вы не имеете команды hostname или работаете в Windows, Вы можете вручную ввести имя хоста своей машины (без обратных кавычек) после опции -h. Вы можете также попробовать -h 127.0.0.1, чтобы соединяться по TCP/IP с локальной машиной.

Удостоверьтесь, что сервер не был сконфигурирован так, чтобы игнорировать сетевые соединения или (если Вы пытаетесь соединиться удаленно), что он не был сконфигурирован, чтобы слушать только локально на его сетевых интерфейсах. Если сервер был запущен с опцией --skip-networking , он не будет принимать соединения TCP/IP вообще. Если сервер был запущен с опцией --bind-address=127.0.0.1, он обрабатывает соединения TCP/IP только локально на кольцевом интерфейсе и не будет принимать удаленные соединения.

Проверьте, что нет никакого брандмауэра, блокирующего доступ к MySQL. Ваш брандмауэр может быть сконфигурирован на основе выполняемого приложения или номера порта, используемого MySQL для коммуникации (3306 по умолчанию). Под Linux или Unix, проверьте свои настройки IPtables (или подобные), чтобы гарантировать, что порт не был заблокирован. Под Windows приложения, такие как ZoneAlarm или Брандмауэр Windows, возможно, должны быть сконфигурированы, чтобы не блокировать порт MySQL.

Вот некоторые причины ошибки Can't connect to local MySQL server :

  • mysqld не работает на локальном хосте. Проверьте список процессов своей операционной системы, чтобы гарантировать, что присутствует процесс mysqld.

  • Вы выполняете сервер MySQL на Windows со многими соединениями TCP/IP. Если Вы делаете это довольно часто, Ваши клиенты получают эту ошибку, Вы можете найти обходное решение в разделе B.5.2.2.1.
  • Кто-то удалил файл сокета Unix, используемый mysqld (/tmp/mysql.sock по умолчанию). Например, у Вас могло бы быть задание cron, которое удаляет старые файлы из каталога /tmp. Вы можете всегда выполнять mysqladmin version , чтобы проверить, существует ли файл сокета Unix, который mysqladmin пытается использовать. Затруднительное положение в этом случае решается запретом cron удалять mysql.sock или надо поместить файл сокета где-то в другом месте. См. раздел B.5.3.6.
  • Вы запустили mysqld с опцией --socket=/path/to/socket, но забыли указать клиенту новое имя файла сокета. Если Вы изменяете путь сокета для сервера, Вы должны также уведомить клиентов MySQL. Вы можете сделать это, обеспечивая ту же опцию --socket, когда Вы выполняете программы клиента. Вы также должны гарантировать, что у клиентов есть разрешение получить доступ к файлу mysql.sock. Чтобы узнать, где находится файл сокета, Вы можете сделать:
    shell> netstat -ln | grep mysql
    
  • Вы используете Linux, и один поток сервера упал (dumped core). В этом случае Вы должны уничтожить другие потоки mysqld (например, через kill ) прежде, чем Вы сможете перезапустить сервер MySQL. См. раздел B.5.3.3.
  • У сервера или программы клиента нет надлежащих привилегий доступа для каталога, который содержит файл сокета Unix или к файлу сокета. В этом случае Вы должны или изменить привилегии доступа для каталога или файла так, чтобы сервер и клиенты могли получить доступ к ним, или перезапустить mysqld с опцией --socket, которая определяет имя файла в каталоге, где сервер может создать его и программы клиента могут получить доступ к нему.

Если Вы получаете сообщение об ошибке Can't connect to MySQL server on some_host, Вы можете попробовать следующие вещи, чтобы узнать, в чем проблема:

  • Проверьте, работает ли сервер на том хосте, выполняя telnet some_host 3306. По умолчанию номер порта MySQL 3306. Измените значение, если Ваш сервер слушает иной порт. Если есть выполнение сервера MySQL, Вы должны получить ответ, который включает номер версии сервера. Если Вы получаете ошибку, например, telnet: Unable to connect to remote host: Connection refused, тогда нет никакого сервера, работающего на данном порту.

  • Если сервер работает на локальном хосте, попытайтесь использовать mysqladmin -h localhost variables, чтобы соединиться используя файл сокета Unix. Проверьте номер порта TCP/IP, который слушает сервер. Это значение переменной port.
  • Если Вы работаете под Linux с включенным пакетом Security-Enhanced Linux (SELinux), удостоверьтесь, что Вы отключили защиту SELinux для процесса mysqld.

B.5.2.2.1. Соединение с сервером MySQL терпит неудачу в Windows

Когда Вы выполняете сервер MySQL на Windows со многими соединениями TCP/IP с ним, и Ваши клиенты получают ошибку Can't connect to MySQL server , причина может быть в том, что Windows не учитывает достаточно много короткоживущих портов для таких соединений.

TIME_WAIT должен сохранить соединение, принимающее пакеты даже после того, как соединение было закрыто. Это потому, что интернет-маршрутизация может заставить пакет следовать медленным маршрутом к своему месту назначения, и он может прибыть после того, как обе стороны согласились закрыть соединение. Если порт используется для нового соединения, тот пакет от старого соединения мог бы сломать протокол или поставить под угрозу данные оригинального соединения. Задержка TIME_WAIT предотвращает это, гарантируя, что порт не может быть снова использован, пока некоторое время не пройдет для тех отсроченных пакетов.

Безопасно уменьшить TIME_WAIT на LAN-соединениях, потому что есть немного шансов существования пакетов с очень длинными задержками, по сравнению с Интернет с его сравнительно большими расстояниями и временами ожидания.

Windows разрешает эфемерные (недолгие) порты TCP пользователю. После того, как любой порт закрыт, это останется в статусе TIME_WAIT 120 секунд. Порт не будет доступен снова, пока это время не истечет. Диапазон по умолчанию значений номеров портов зависит от версии Windows, с большим ограниченным количеством портов в более старых версиях:

  • Windows Server 2003 и ранее: порты в диапазоне 1025-5000.

  • Windows Vista, Server 2008 и новее: порты в диапазоне 49152-65535.

С маленьким стеком доступных портов TCP (5000) и высоким числом портов TCP, открытых и закрытых за короткий период времени наряду со статусом TIME_WAIT у Вас есть хороший шанс для того, чтобы исчерпать порты. Есть два способа решить эту проблему:

  • Сократите количество портов TCP, потребляемых быстро, используя объединение соединений или постоянные соединения, где только возможно.

  • Настройте некоторые параметры в Windows (см. ниже).

Следующая процедура вовлекает изменение реестра Windows. Прежде, чем Вы измените реестр удостоверьтесь, что зарезервировали его и понимаете, как восстановить, если проблема происходит. Для информации о том, как сохранить, восстановить и отредактировать реестр, смотрите следующую статью в Microsoft Knowledge Base: http://support.microsoft.com/kb/256986/EN-US/.

  1. Запустите Registry Editor (Regedt32.exe).

  2. Определите местонахождение следующего ключа в реестре:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    
  3. В меню Edit кликните Add Value, затем добавьте следующее значение:
    Value Name: MaxUserPort
    Data Type: REG_DWORD
    Value: 65534
    
    Это определяет число эфемерных портов, доступных любому пользователю. Допустимый диапазон: 5000-65534 (десятичное число). Значение по умолчанию: 0x1388 (5000, десятичное число).
  4. В меню Edit кликните Add Value, затем добавьте следующее значение:
    Value Name: TcpTimedWaitDelay
    Data Type: REG_DWORD
    Value: 30
    
    Это определяет число секунд, которые надо держать порт TCP в статусе TIME_WAIT перед закрытием. Допустимый диапазон между 30 и 300 (десятичные числа). Значение по умолчанию 0x78 (120 десятично).
  5. Закройте Registry Editor.
  6. Перезагрузите машину.

Отмена вышеупомянутого должна быть столь же проста, как удаление записей реестра, которые Вы создали.

B.5.2.3. Потерянное соединение с сервером MySQL

Есть три вероятных причины для этого сообщения об ошибке.

Обычно это указывает на сетевую проблему связи, и Вы должны проверить работу своей сети, если эта ошибка часто происходит. Если сообщение об ошибке включает during query, это, вероятно, имеет место.

Иногда during query происходит, когда миллионы строк посылают как часть одного или более запросов. Если Вы знаете, что это происходит, Вы должны попытаться увеличить net_read_timeout от значения по умолчанию в 30 секунд до 60 секунд или дольше, достаточного времени для передачи данных.

Также это может произойти, когда клиент делает попытку начального соединения с сервером. В этом случае, если Ваше значение connect_timeout установлено только в несколько секунд, Вы в состоянии решить проблему, увеличивая его до десяти секунд, возможно больше, если у Вас есть очень длинное расстояние или медленное соединение. Вы можете определить, в чем дело при использовании SHOW GLOBAL STATUS LIKE 'Aborted_connects'. Это значение увеличится для каждой начальной попытки соединения, которую прерывает сервер. Вы можете видеть reading authorization packet как часть сообщения об ошибке.

Если причина не одна из только что описанных, Вы можете испытывать проблему со значениями BLOB, которые больше чем max_allowed_packet , который может вызвать эту ошибку с некоторыми клиентами. Иногда Вы можете видеть ошибку ER_NET_PACKET_TOO_LARGE и это подтверждает, что Вы должны увеличить max_allowed_packet.

B.5.2.4. Проблемы с паролем в интерактивном режиме

Клиенты MySQL запрашивают пароль когда вызваны с опцией --password или -p, у которой нет никакого последующего значения пароля:

shell> mysql -u user_name -p
Enter password:
На некоторых системах Вы можете найти, что Ваш пароль работает, когда определен в файле опции или в командной строке, но не когда Вы вводите его в интерактивном режиме в ответ на запрос Enter password:. Это происходит, когда библиотека, предоставленная системой, чтобы считать пароли, ограничивает значения пароля небольшим количеством символов (как правило, восемь). Это проблема с системной библиотекой, не с MySQL. Чтобы обойти проблему, измените свой пароль MySQL на значение, которое является восемью или меньшим количеством символов или впишите Ваш пароль в файл опций.

B.5.2.5. Хост 'host_name' блокирован

Если следующая ошибка происходит, это означает, что mysqld получил много запросов соединения от данного хоста, которые были прерваны в середине:

Host 'host_name' is blocked because of many connection errors.
Unblock with 'mysqladmin flush-hosts'
Значение системной переменной max_connect_errors определяет, сколько последовательных прерванных запросов соединения разрешено. См. раздел 6.1.5. После max_connect_errors неудавшихся запросов без успешного соединения, mysqld предполагает, что что-то неправильно (например, что кто-то пытается вскрыть систему) и блокирует соединения с этого хоста до запроса FLUSH HOSTS или выполнения команды mysqladmin flush-hosts .

По умолчанию mysqld блокирует хост после 100 ошибок соединения. Вы можете скорректировать значение, устанавливая max_connect_errors при запуске сервера:

shell> mysqld_safe --max_connect_errors=10000 &
Значение может также быть установлено во времени выполнения:
mysql> SET GLOBAL max_connect_errors=10000;
Если Вы получаете сообщение об ошибке Host 'host_name ' is blocked для данного хоста, Вы должны сначала проверить, что нет ничего неправильного с соединениями TCP/IP от него. Если у Вас есть сетевые проблемы, не стоит увеличивать max_connect_errors .

B.5.2.6. Too many connections

Если Вы получаете ошибку Too many connections, когда Вы пытаетесь соединиться с mysqld , это означает, что все доступные соединения используются другими клиентами.

Числом разрешенных соединений управляет системная переменная max_connections. Значение по умолчанию 151, чтобы улучшить работу, когда MySQL используется с веб-сервером Apache. Ранее значение по умолчанию было 100. Если Вы должны поддержать больше соединений, Вы должны установить большее значение для этой переменной.

mysqld фактически разрешает max_connections+1 клиентских соединений. Дополнительное соединение сохранено для использования учетными записями, которые имеют привилегию SUPER. Предоставляя привилегию SUPER администраторам, а не нормальным пользователям (кто не должен нуждаться в этом), администратор может соединиться с сервером и использовать SHOW PROCESSLIST, чтобы диагностировать проблемы, даже если максимальное количество непривилегированных клиентов соединено. См. раздел 14.7.5.29.

Максимальное количество соединений зависит от качества библиотеки потоков на данной платформе, количества доступной RAM, сколько RAM используется для каждого соединения, рабочей нагрузки каждого соединения и желаемого времени отклика. Linux или Solaris должны быть в состоянии поддержать по крайней мере 500-1000 одновременных соединений обычно и целых 10000 соединений, если Вы имеете много гигабайтов RAM в наличии, а рабочая нагрузка каждого низка или некритично время отклика. Windows ограничена (открытые таблицы*2+открытые соединения) < 2048 из-за уровня совместимости Posix, используемого на этой платформе.

Увеличение open-files-limit может быть необходимым. Также см. раздел 2.5 для того, как поднять ограничение операционной системы на то, сколько дескрипторов может использоваться MySQL.

B.5.2.7. Out of memory

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

mysql: Out of memory at line 42, 'malloc.c'
mysql: needed 8136 byte (8k), memory in use: 12481367 bytes (12189k)
ERROR 2008: MySQL client ran out of memory
Чтобы исправить проблему, сначала проверьте, правилен ли Ваш запрос. Действительно ли разумно, что это должно возвратить очень много строк? В противном случае исправьте запрос и попробуйте еще раз. Иначе, Вы можете вызвать mysql с опцией --quick. Это заставляет использовать функцию C API mysql_use_result(), чтобы получить набор результатов, которая меньше нагружает клиента (но больше сервер).

B.5.2.8. MySQL server has gone away

Этот раздел также покрывает связанную ошибку Lost connection to server during query.

Наиболее распространенная причина ошибки MySQL server has gone away состоит в том, что сервер закрыл соединение по тайм-ауту. В этом случае Вы обычно получаете один из следующих кодов ошибки.

Код ошибкиОписание
CR_SERVER_GONE_ERROR Клиент не мог послать запрос на сервер.
CR_SERVER_LOST Клиент не получал ошибку при обращении к серверу, но не получил полный ответ (или любой ответ).

По умолчанию, сервер закрывает соединение после восьми часов, если ничто не произошло. Вы можете изменить ограничение по времени, устанавливая переменную wait_timeout , когда Вы запускаете mysqld . См. раздел 6.1.5.

Если у Вас есть скрипт, Вы только должны запустить запрос снова для клиента, чтобы сделать автоматическое пересоединение. Это предполагает, что у Вас есть автоматическое пересоединение во включенном режиме на клиенте (что является значением по умолчанию для mysql.

Некоторые другие общие причины MySQL server has gone away:

  • Вы (или администратор) уничтожили рабочий поток с помощью KILL или mysqladmin kill .

  • Вы попытались выполнить запрос после закрытия соединения с сервером. Это указывает на логическую ошибку в приложении, которое должно быть исправлено.
  • У приложения-клиента, работающего на ином хосте, нет необходимых привилегий, чтобы соединиться с сервером MySQL с того узла.
  • Вы получили тайм-аут от соединения TCP/IP на стороне клиента. Это может произойти, если Вы использовали команды: mysql_options(..., MYSQL_OPT_READ_TIMEOUT,...) или mysql_options(..., MYSQL_OPT_WRITE_TIMEOUT,...). В этом случае увеличение тайм-аута может помочь решить проблему.
  • Вы столкнулись с тайм-аутом на стороне сервера, а автоматическое пересоединение в клиенте отключено (флаг reconnect структуры MYSQL равен 0).
  • Вы используете клиент Windows, и сервер закрыл соединение (вероятно, потому что выдохся wait_timeout) прежде, чем команда была выполнена.

    Проблема на Windows состоит в том, что в некоторых случаях MySQL не получает ошибку от OS при записи в соединение TCP/IP с сервером, а вместо этого получает ошибку, пытаясь считать ответ из соединения.

    Решение этого состоит в том, чтобы или сделать mysql_ping() на соединении, если прошло длительное время начиная с последнего запроса (так делает Connector/ODBC) или установить wait_timeout в mysqld настолько высоко, что это практически никогда не кончается.

  • Вы можете также получить эти ошибки, если Вы посылаете серверу запрос, который является неправильным или слишком большим. Если mysqld получает пакет, который является слишком большим или не в порядке, он предполагает, что что-то пошло не так, как надо с клиентом и закрывает соединение. Если Вы нуждаетесь в больших запросах (например, если Вы работаете с большими столбцами BLOB ), Вы можете увеличить предел запроса, устанавливая переменную max_allowed_packet , у которой есть значение по умолчанию 4 МБ. Вы, возможно, также должны увеличить максимальный пакетный размер на конце клиента. Больше информации об установке пакетного размера дано в in разделе B.5.2.9.

    Запросы INSERT или REPLACE, которые вставляют очень много строк, могут также вызвать эти виды ошибок. Любой из этих запросов посылает единственную команду серверу независимо от числа строк, которые будут вставлены, таким образом, Вы можете часто избегать ошибки, сокращая количество строк, посланных INSERT или REPLACE.

  • Вы также получаете потерянное соединение, если посылаете пакет 16 МБ или больше, если Ваш клиент старше чем 4.0.8, а Ваш сервер 4.0.8 и выше, или наоборот.
  • Также возможно видеть эту ошибку, если поиск имени хоста терпит неудачу (например, если сервер DNS, на который полагаются Ваш сервер или сеть, отвалился). Это потому что MySQL зависит от хост-системы для разрешения имени, но не имеет никакого способа знать, является ли она рабочей. С точки зрения MySQL, проблема неотличима от любого другого сетевого тайм-аута.

    Вы можете также видеть ошибку MySQL server has gone away, если MySQL запущен с опцией --skip-networking .

    Другая сетевая проблема, которая может вызвать эту ошибку, происходит, если порт MySQL (значение по умолчанию 3306) заблокирован Вашим брандмауэром, таким образом предотвращая какие-либо соединения вообще с сервером MySQL.

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

Вы можете проверить, упал ли сервер MySQL и перезапустить его, выполняя mysqladmin version и исследуя продолжительность работы сервера. Если бы соединение клиента было сломано, потому что mysqld перезапускался, то Вы должны сконцентрироваться на обнаружении причины катастрофического отказа.

Вы можете получить больше информации о потерянных соединениях, запуская mysqld с системной переменной log_error_verbosity равной 3. Это регистрирует некоторые из сообщений разъединения в файл hostname.err. См. раздел 6.4.2.

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

  • Укажите, упал ли сервер MySQL. Вы можете найти информацию об этом в журнале ошибок сервера. См. раздел B.5.3.3 .

  • Если определенный запрос уничтожает mysqld и таблицы проверены CHECK TABLE прежде, чем Вы выполняли запрос, Вы можете обеспечить восстанавливаемый прецедент? См. раздел 26.5.
  • Что является значением системной переменной wait_timeout сервера MySQL? mysqladmin variables дает Вам значение этой переменной.
  • Вы попытались выполнить mysqld с общим журналом запросов, позволяющим определить, появляется ли проблемный запрос в журнале? См. раздел 6.4.3.

См. также разделы B.5.2.10 и 1.7.

B.5.2.9. Packet Too Large

Коммуникационный пакет единственный запрос SQL, посланный серверу MySQL, единственная строка, которую посылают клиенту, или событие двоичного журнала, посланное с основного сервера репликации ведомому устройству.

Самым большим пакетом, который может быть передан к или из MySQL 8.0 серверов или клиент, является 1GB.

Когда клиент MySQL или сервер mysqld получают пакет, больше чем max_allowed_packet байт, это порождает ошибку ER_NET_PACKET_TOO_LARGE и завершает соединение. С некоторыми клиентами Вы можете также получить ошибку Lost connection to MySQL server during query, если коммуникационный пакет является слишком большим.

У клиента и сервера есть их собственные переменные max_allowed_packet так что, если Вы хотите обработать большие пакеты, Вы должны увеличить эту переменную в клиенте и в сервере.

Если Вы используете клиента mysql, значение по умолчанию max_allowed_packet равно 16 MB. Чтобы установить большее значение, запустите mysql так:

shell> mysql --max_allowed_packet=32M
Это устанавливает пакетный размер в 32 МБ.

Значение по умолчанию серверной копии max_allowed_packet равно 4 MB. Вы можете увеличить это, если сервер должен обработать большие запросы (например, если Вы работаете с большими столбцами BLOB). Например, чтобы установить переменную в 16 МБ, запустите сервер так:

shell> mysqld --max_allowed_packet=16M
Вы можете также использовать файл опции, чтобы установить max_allowed_packet . Например, чтобы установить размер для сервера в 16 МБ, добавьте следующие строки в файле опций:
[mysqld]
max_allowed_packet=16M
Безопасно увеличить значение этой переменной, потому что дополнительная память выделена только при необходимости. Например, mysqld выделяет больше памяти только, когда Вы запускаете длинный запрос или когда mysqld должен возвратить большую строку результата. Маленькое значение по умолчанию переменной предосторожность, чтобы поймать неправильные пакеты между клиентом и сервером, а также гарантировать, что Вы не исчерпываете память при использовании больших пакетов случайно.

Вы можете также получить странные проблемы с большими пакетами, если Вы используете большие значения BLOB, но не предоставили mysqld доступ к достаточной памяти, чтобы обработать запрос. Если Вы подозреваете, что дело обстоит именно так, попытайтесь добавить ulimit -d 256000 в начале скрипта mysqld_safe и перезапустите mysqld .

B.5.2.10. Коммуникационные ошибки и прерванные соединения

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

  • Журнал ошибок. См. раздел 6.4.2 .

  • Общий журнал запросов. См. раздел 6.4.3 .
  • Переменные состояния Aborted_xxx т Connection_errors_xxx. См. раздел 6.1.7.
  • Кэш хоста, который доступен, используя таблицу host_cache Performance Schema. См. разделы 9.12.4.2 и 23.9.16.1.

Если Вы запускаете сервер с системной переменной log_error_verbosity равной 3, Вы могли бы найти подобные этому сообщения в Вашем журнале ошибок:

[Note] Aborted connection 854 to db: 'employees' user: 'josh'
Если клиент неспособен даже соединиться, сервер постепенно увеличивает значение Aborted_connects . Неудачные попытки соединения могут произойти по следующим причинам:

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

  • Клиент использует неправильный пароль.
  • Пакет соединения не содержит правильную информацию.
  • Это занимает больше, чем connect_timeout секунд, чтобы получить пакет. См. раздел 6.1.5.

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

Если клиент успешно соединяется, но позже разъединяется ненадлежащим образом, сервер постепенно увеличивает Aborted_clients и пишет в журнал ошибок сообщение Aborted connection. Причина может быть следующей:

  • Программа клиента не вызвала mysql_close() при выходе.

  • Клиент спал больше, чем wait_timeout или interactive_timeout секунд, не выпуская запросов серверу. См. раздел 6.1.5.
  • Программа клиента, закончена в середине передачи данных.

Другие причины проблем с прерванными соединениями или клиентами:

  • Значение переменной max_allowed_packet является слишком маленьким, или запросы требуют большей памяти, чем Вы выделили для mysqld. См. раздел B.5.2.9.

  • Протокол Ethernet в Linux использует сразу полудуплекс и полный дуплекс. У некоторых Linux-драйверов Ethernet есть эта ошибка. Вы должны проверить на эту ошибку, передавая огромный файл, используя протокол FTP между машинами клиента и сервера. Если передача входит в режим burst-pause-burst-pause, Вы испытываете синдром дуплекса Linux. Переключите дуплексный режим для Вашей сетевой платы и для коммутатора или к полному дуплексу или к полудуплексу и проверьте результаты, чтобы определить лучшую установку.
  • Проблема с библиотекой потока, которая вызывает прерывания на чтениях.
  • Ужасно сконфигурированный TCP/IP.
  • Дефектный Ethernet: хаб, коммутатор, кабель... Это может быть диагностировано должным образом только, заменяя аппаратные средства.

См. также раздел B.5.2.8.

B.5.2.11. The table is full

Если происходит ошибка table-full, может случиться так, что диск полон или что таблица достигла своего максимального размера. Эффективный максимальный табличный размер для баз данных MySQL обычно определяется ограничениями операционной системы на размеры файла, а не внутренними пределами MySQL. См. раздел C.10.3.

B.5.2.12. Can't create/write to file

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

Can't create/write to file '\\sqla3fe_0.ism'.
Предыдущая ошибка типичное сообщение для Windows, сообщение в Unix подобно.

Можно запустить mysqld с опцией --tmpdir или добавить опцию к секции [mysqld] Вашего файла опции. Например, чтобы определить каталог C:\temp, используйте эти строки:

[mysqld]
tmpdir=C:/temp
Каталог C:\temp должен существовать и иметь достаточное пространство для сервера MySQL. См. раздел 5.2.6.

Другая причина этой ошибки может быть проблемой разрешений. Удостоверьтесь, что сервер MySQL может писать в каталог tmpdir.

Проверьте также код ошибки, который Вы получаете с perror. Одна из причина, по которой сервер не может записать таблицу, состоит в том, что файловая система полна:

shell> perror 28
OS error code28: No space left on device
Если Вы получаете ошибку следующего типа во время запуска, она указывает, что файловая система или каталог, используемый для того, чтобы сохранить файлы с данными, являются защищенными от записи. При условии, что ошибка при записи к испытательному файлу, ошибка не серьезна и может быть безопасно проигнорирована.
Can't create test file /usr/local/mysql/data/master.lower-test

B.5.2.13. Commands out of sync

Если Вы получаете ошибку Commands out of sync; you can't run this command now в Вашем коде клиента Вы вызываете функции клиента в неправильном порядке.

Это может произойти, например, если Вы используете mysql_use_result() и пробуете выполнить новый запрос прежде, чем Вы вызвали mysql_free_result(). Это может также произойти, если Вы пытаетесь выполнить два запроса, которые возвращают данные без запроса mysql_use_result() или mysql_store_result() между ними.

B.5.2.14. Игнорирование пользователя

Если Вы получаете следующую ошибку, это означает, что, когда mysqld был запущен или когда он перезагружал таблицы привилегий, нашел учетную запись в таблице user, у которой был неверный пароль.

Found wrong password for user 'some_user'@'some_host'; ignoring user

В результате учетная запись просто проигнорирована системой. Чтобы решить эту проблему, назначьте новый, допустимый, пароль на учетную запись.

B.5.2.15. Table 'tbl_name' doesn't exist

Если Вы получаете любую из следующих ошибок, это обычно означает, что никакой таблицы не существует в базе данных по умолчанию:

Table 'tbl_name' doesn't exist
Can't find file: 'tbl_name' (errno: 2)
В некоторых случаях может случиться так, что таблица действительно существует, но Вы обращаетесь к ней неправильно:

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

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

Вы можете проверить, какие таблицы находятся в базе данных по умолчанию через SHOW TABLES. См. раздел 14.7.5.

B.5.2.16. Can't initialize character set

Вы могли бы видеть такую ошибку, если у Вас есть проблемы с набором символов:

MySQL Connection Failed: Can't initialize character set charset_name
У этой ошибки может быть любая из следующих причин:

  • Набор символов многобайтовый, и у Вас нет никакой поддержки набора символов в клиенте. В этом случае Вы должны повторно собрать клиента, выполняя CMake с опцией -DDEFAULT_CHARSET= charset_name. См. раздел 2.8.4.

    Все стандартные исполняемые модули MySQL собраны с поддержкой всех многобайтовых наборов символов.

  • Набор символов простой, который не собран в mysqld, а файлы определения набора символов не находятся в месте, где клиент ожидает найти их.

    В этом случае Вы должны использовать один из следующих методов, чтобы решить проблему:

    • Повторно соберите клиент с поддержкой набора символов. См. раздел 2.8.4.

    • Определите клиенту каталог, где файлы определения набора символов расположены. Для многих клиентов Вы можете сделать это с помощью опции --character-sets-dir.
    • Скопируйте символьные файлы определения туда, где клиент ожидает, что они будут.

B.5.2.17. File Not Found и подобные ошибки

Если Вы получили ERROR 'file_name' not found (errno: 23), Can't open file: file_name (errno: 24) или любую другую ошибку с errno 23 или errno 24 от MySQL, это означает, что Вы не выделили достаточно дескрипторов файла для сервера MySQL. Вы можете использовать perror, чтобы получить описание того, что означает код ошибки:

shell> perror 23
OS error code23:File table overflow
shell> perror 24
OS error code24:Too many open files
shell> perror 11
OS error code11:Resource temporarily unavailable
Проблема здесь состоит в том, что mysqld пытается сохранить открытым слишком много файлов одновременно. Вы можете или сказать mysqld не открывать очень много файлов сразу или увеличить число дескрипторов файла, доступных mysqld .

Чтобы сказать mysqld сохранять открытыми меньше файлов за один раз, Вы можете сделать табличный кэш меньше, уменьшая значение системной переменной table_open_cache (значение по умолчанию 64). Это, возможно, не полностью предотвращает исчерпание дескрипторов файла, потому что при некоторых обстоятельствах сервер может попытаться расширить размер кэша временно, как описано в разделе 9.4.3.1. Сокращение значения max_connections также сокращает количество открытых файлов (значение по умолчанию 100).

Чтобы изменить число дескрипторов файла, доступных mysqld, Вы можете использовать опцию --open-files-limit в mysqld_safe или установить системную переменную open_files_limit . См. раздел 6.1.5. Самый легкий способ установить эти значения состоит в том, чтобы добавить опцию к Вашему файлу опций. См. раздел 5.2.6. Если у Вас есть старая версия mysqld, которая не поддерживает установку предела открытых файлов, Вы можете отредактировать скрипт mysqld_safe . Есть в нем закомментированная строка ulimit -n 256 . Вы можете удалить символ #, чтобы раскомментировать эту строку, и изменить число 256, чтобы определить количество дескрипторов файла, которые будут доступны для mysqld.

--open-files-limit и ulimit могут увеличить число дескрипторов файла, но только до предела, наложенного операционной системой. Есть также жесткий предел, который может быть переопределен, только если Вы запускаете mysqld_safe или mysqld как root (только помните, что Вы также должны запустить сервер с опцией --user в этом случае так, чтобы он не продолжил работать как root после того, как стартует). Если Вы должны увеличить предел дескрипторов операционной системы на число описателей файла, доступных каждому процессу, консультируйтесь с документацией для своей системы.

Если Вы выполняете оболочку tcsh, ulimit не работает! tcsh также сообщает неправильные значения, когда Вы просите текущие пределы. В этом случае Вы должны запустить mysqld_safe , используя sh.

B.5.2.18. Проблемы табличного повреждения

Если Вы запустили mysqld с --myisam-recover-options, MySQL автоматически проверяет и пытается восстановить таблицы MyISAM, если они отмечены как 'не закрыта должным образом' или 'отказ'. Если это происходит, MySQL пишет запись в файл hostname.err: 'Warning: Checking table ...' , которая сопровождается Warning: Repairing table, если таблица должна быть восстановлена. Если Вы получаете много этих ошибок, без mysqld упавшего неожиданно как раз перед этим, то что-то тут не так и должно быть исследовано далее.

Когда сервер обнаруживает табличное повреждение MyISAM, он пишет дополнительную информацию в журнал ошибок, такую как имя и номер строки исходного файла и список потоков, получающих доступ к таблице. Пример: Got an error from thread_id=1, mi_dynrec.c:368. Это полезная информация для включения в отчеты об ошибках.

См. также разделы 6.1.4 и 26.5.1.7.

B.5.3. Проблемы администрирования

B.5.3.1. Проблемы с правами доступа

Если у Вас есть проблемы с правами доступа, переменная окружения UMASK или UMASK_DIR может быть установлена неправильно, когда mysqld стартует. Например, MySQL мог бы выдать следующее сообщение об ошибке, когда Вы составляете таблицу:

ERROR: Can't find file: 'path/with/file_name' (Errcode: 13)
Значения по умолчанию UMASK и UMASK_DIR 0640 и 0750, соответственно. MySQL предполагает, что значение для UMASK или UMASK_DIR восьмеричное, если начинается с 0. Например, установка UMASK=0600 эквивалентна UMASK=384 поскольку восьмеричное 0600 это десятичное 384.

Чтобы изменить значение по умолчанию UMASK, запустите mysqld_safe :

shell> UMASK=384# = 600 in octal
shell> export UMASK
shell> mysqld_safe &

По умолчанию, MySQL создает каталоги базы данных со значением разрешения на доступ 0750. Чтобы изменить это поведение, установите переменную UMASK_DIR. Если Вы устанавливаете это значение, новые каталоги создаются с объединенным значением UMASK и UMASK_DIR. Например, чтобы дать группе доступ ко всем новым каталогам, запустите mysqld_safe так:

shell> UMASK_DIR=504# = 770 in octal
shell> export UMASK_DIR
shell> mysqld_safe &

B.5.3.2. Как сбросить пароль root

Если Вы никогда не назначали root-пароль для MySQL, сервер не требует пароля вообще для того, чтобы соединиться как root. Однако, это небезопасно. Для инструкций по назначению пароля, см. раздел 2.9.4.

Если Вы знаете root-пароль и хотите изменить его, см. разделы 14.7.1.1 и 14.7.1.11.

Если Вы назначали root-пароль ранее, но забыли его, Вы можете назначить новый пароль. Следующие разделы обеспечивают инструкции для Windows и Unix-подобных систем.

B.5.3.2.1. Сброс Root-пароля: Windows

В Windows используйте следующую процедуру, чтобы сбросить пароль для пользователя MySQL 'root'@'localhost'.

  1. Войдите в систему как Администратор.

  2. Остановите сервер MySQL, если он работает. Для сервера, который работает как служба Windows, перейдите к Services manager: из меню Start выберите Control Panel, Administrative Tools и Services. Найдите службу MySQL в списке и остановите.

    Если Ваш сервер не работает как служба, Вы, возможно, должны использовать Диспетчер задач, чтобы вынудить его остановиться.

  3. Создайте текстовый файл, содержащий оператор присваивания пароля на одной строке. Укажите пароль, который Вы хотите использовать.
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    
  4. Сохраните файл. Этот пример предполагает, что Вы называете файл C:\mysql-init.txt.
  5. Откройте консоль, чтобы добраться до командной строки.
  6. Запустите сервер MySQL со специальной опцией --init-file (обратите внимание, что наклонная черта влево в значении опции удвоена):
    C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
    C:\> mysqld --init-file=C:\\mysql-init.txt
    
    Если Вы устанавливали MySQL в другое место, скорректируйте команду cd.

    Сервер выполняет содержание файла, названного в опции the --init-file при запуске, изменяя пароль учетной записи 'root'@'localhost'.

    Чтобы вывести ответ сервер в консоль, а не в файл системного журнала, добавьте опцию --console к команде mysqld .

    Если Вы устанавливали MySQL, используя мастер установки MySQL, Вы, возможно, должны определить опцию --defaults-file. Например:

    C:\> mysqld
     --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
     --init-file=C:\\mysql-init.txt
    
    Соответствующяя установка --defaults-file установка может быть найдена, используя Services Manager: из меню Start выберите Control Panel , Administrative Tools, Services. Найдите службу MySQL в списке, щелкните правой кнопкой мыши по строке и выберите Properties. Поле Path to executable содержит установку --defaults-file.
  7. После того, как сервер запустился успешно, удалите C:\mysql-init.txt.

Вы должны теперь быть в состоянии соединиться с сервером MySQL как root с новым паролем. Запустите сервер как обычно. Если Вы выполняете сервер как службу, запустите его из окна Windows Services.

B.5.3.2.2. Сброс Root-пароля в Unix

В Unix используйте следующую процедуру, чтобы сбросить пароль для пользователя MySQL 'root'@'localhost'.

Инструкции предполагают, что Вы запустите сервер MySQL с учетной записи Unix, которую Вы обычно используете для того, чтобы выполнить его. Например, если Вы выполняете сервер, используя учетку mysql, Вы должны войти в систему как mysql перед использованием инструкций. Альтернативно, Вы можете войти в систему как root, но в этом случае Вы должны запустить mysqld с опцией --user=mysql. Если Вы запускаете сервер как root без использования --user=mysql, сервер может создать принадлежащие root файлы в каталоге данных, такие как файлы системного журнала, и они могут вызвать связанные с доступом проблемы для будущих запусков сервера. Если это произойдет, то Вы будете должны исправить права доступа вручную.

  1. Войдите в систему как пользователь Unix, от имени которого сервер MySQL выполняется (например, mysql).

  2. Остановите сервер MySQL, если он работает. Определите местонахождение файла .pid, который содержит идентификатор процесса сервера. Точное местоположение и название этого файла зависят от Вашего дистрибутива, имени хоста, и конфигурации. Общие местоположения /var/lib/mysql/, /var/run/mysqld/ и /usr/local/mysql/data/. Вообще, у имени файла есть расширение .pid и начинается имя с mysqld или с имени хоста Вашей системы.

    Остановите сервер MySQL, посылая нормальный kill (не kill -9) процессу mysqld. Используйте фактический путь к .pid в следующей команде:

    shell> kill `cat /mysql-data-directory/host_name.pid`
    
    Используйте обратные кавычки с командой cat. Они вызывают вывод cat в команду kill.
  3. Создайте текстовый файл, содержащий оператор присваивания пароля на одной строке. Примерно так:
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    
  4. Сохраните файл. Этот пример предполагает, что Вы называете файл /home/me/mysql-init. Файл содержит пароль, так что не сохраняйте его там, где он может быть считан другими пользователями. Если Вы не зарегистрированы как mysql (пользователь выполнения сервера), удостоверьтесь, что у файла есть права доступа для пользователя mysql на чтение.
  5. Запустите сервер MySQL со специальной опцией --init-file:
    shell> mysqld_safe --init-file=/home/me/mysql-init &
    
    Сервер выполняет содержание файла, названного в опции the --init-file при запуске, изменяя пароль для 'root'@'localhost'.
  6. После того, как сервер запустился успешно, удалите /home/me/mysql-init.

B.5.3.2.3. Сброс Root-пароля: общие инструкции

Предыдущие разделы обеспечивают инструкции определенно для Windows и Unix-систем. Альтернативно, на любой платформе, Вы можете сбросить пароль, используя mysql (но этот подход менее безопасен):

  1. Остановите сервер MySQL в случае необходимости, затем перезапустите его с опцией --skip-grant-tables. Это позволяет любому соединиться без пароля и со всеми привилегиями, и отключает команды управления учетными записями, такие как ALTER USER и SET PASSWORD. Поскольку это небезопасно, стоит использовать --skip-grant-tables в соединении с --skip-networking дабы воспрепятствовать тому, чтобы удаленные клиенты соединились.

  2. Соединитесь с сервером MySQL, используя клиент mysql, никакой пароль не нужен, потому что сервер был запущен с опцией --skip-grant-tables:
    shell> mysql
    
  3. В клиенте mysql скажите серверу перезагрузтть таблицы привилегий так, чтобы запросы управления учетными записями работали:
    mysql> FLUSH PRIVILEGES;
    
    Теперь смените пароль учетной записи 'root'@'localhost'. Замените его паролем, который Вы хотите использовать.
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    

Теперь остановите сервер и запустите его нормально (без опций --skip-grant-tables и --skip-networking ).

B.5.3.3. Что делать, если MySQL падает

Каждая версия MySQL проверена на многих платформах прежде, чем она будет выпущена. Это не означает, что нет никаких ошибок в MySQL, но если есть ошибки, их должно быть очень мало.

Сначала Вы должны попытаться узнать, является ли проблема падений mysqld проблемой на сервере или на клиенте. Вы можете проверить, сколько времени Ваш сервер mysqld работал, выполняя запрос mysqladmin version. Если mysqld перезапустился, Вы можете найти причину в журнале ошибок сервера. См. раздел 6.4.2.

На некоторых системах Вы можете найти в журнале ошибок след стека при падении mysqld , который Вы можете обработать программой resolve_stack_dump . См. раздел 26.5. Отметьте, что значения переменных, написанные в журнале ошибок, возможно, не всегда на 100% правильны.

Много катастрофических отказов сервера вызваны поврежденными файлами с данными или индексными файлами. MySQL обновляет файлы на диске с помощью системного вызова write() после каждого запроса SQL и перед отчетом клиенту о результате. Это не так, если Вы работаете с опцией --delay-key-write, тогда записаны файлы с данными, но не индексные файлы. Это означает, что содержание файла с данными безопасно, даже если mysqld упадет, потому что операционная система гарантирует, что данные будут записаны на диск. Вы можете вынудить MySQL сбросить все на диск после каждого запроса SQL, запуская его с параметром --flush.

Предыдущие средства обеспечивают то, что обычно Вы не должны получить поврежденные таблицы, если одно из следующего не происходит:

  • Сервер MySQL или хост сервера были повреждены в середине обновления.

  • Вы нашли ошибку в mysqld , который заставила его упасть в середине обновления. Поздравляем! Это редкость.
  • Некоторая внешняя программа управляет файлами с данными или индексными файлами в то же самое время, что и mysqld, не блокируя таблицу должным образом.
  • Вы выполняете много mysqld , используя тот же самый каталог данных на системе, которая не поддерживает хорошие блокировки файловой системы (обычно обрабатываемые менеджером блокировок lockd), или Вы выполняете много серверов с отключенной внешней блокировкой.
  • У Вас есть разрушенный файл с данными или индексный файл, который содержит очень поврежденные данные, которые запутали mysqld.
  • Вы нашли ошибку в коде хранения данных. Это не очень вероятно, но это, по крайней мере, возможно. В этом случае, Вы можете попытаться изменить механизм хранения на другой механизм при использовании ALTER TABLE на восстановленной копии таблицы.

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

  • Остановите сервер mysqld с помощью mysqladmin shutdown, запустите myisamchk --silent --force */*.MYI из каталога данных, чтобы проверить все таблицы MyISAM и перезапустите mysqld. Это гарантирует, что Вы работаете из чистого состояния. См. главу 6.

  • Запустите mysqld с включенным общим журналом запросов (см. раздел 6.4.3). Теперь попытайтесь определить по информации, записанной в журнал, уничтожает ли некоторый определенный запрос сервер. Приблизительно 95% всех ошибок связаны с особым запросом. Обычно это один из последних запросов в файле системного журнала, как раз перед перезапуском сервера. См. раздел 6.4.3. Если Вы можете неоднократно уничтожить MySQL определенным запросом, даже когда Вы проверили все таблицы прежде, чем запустить его, то Вы изолировали ошибку и должны представить отчет об ошибке для нее. См. раздел 1.7.
  • Попытайтесь сделать тест, который мы можем использовать, чтобы повторить проблему. См. раздел 26.5.
  • Попробуйте скрипт fork_big.pl. Это расположено в каталоге tests дистрибутива исходных текстов.
  • Реконфигурируйте MySQL с опцией -DWITH_DEBUG=1 CMake и пересоберите. С поддержкой отладки отловить нужную информацию будет много легче. См. раздел 26.5.
  • Удостоверьтесь, что Вы применили последние патчи для своей операционной системы.
  • Используйте опцию --skip-external-locking. На некоторых системах менеджер блокировок lockd не работает должным образом, опция --skip-external-locking говорит mysqld не использовать внешнюю блокировку. Это означает, что Вы не можете выполнить два сервера mysqld в том же самом каталоге данных, и что Вы должны быть осторожны, если используете myisamchk . Однако, может быть поучительно попробовать опцию как тест.
  • Если mysqld , кажется, работает, но не отвечает, попробуйте mysqladmin -u root processlist. Иногда mysqld не подвешен даже при том, что кажется безразличным. Проблема может состоять в том, что все соединения используются, или может быть некоторая внутренняя проблема блокировки. mysqladmin -u root processlist обычно в состоянии сделать соединение даже в этих случаях, и может обеспечить полезную информацию о текущем числе соединений и их состояниях.
  • Выполните команду mysqladmin -i 5 status или mysqladmin -i 5 -r status в отдельном окне, чтобы произвести статистику, выполняя другие запросы.
  • Попробуйте еще вот что:

    1. Запустите mysqld из gdb (или другого отладчика). См. раздел 26.5.

    2. Выполните свои испытательные скрипты.
    3. Распечатайте след и локлаьные переменные на трех самых низких уровнях. В gdb Вы можете сделать это следующими командами, когда mysqld отказал внутри gdb:
      backtrace
      info local
      up
      info local
      up
      info local
      
      С gdb Вы можете также исследовать потоки с помощью info threads и переключиться на определенный поток командой thread N, где N ID потока.

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

  • Пошлите нормальный отчет об ошибках. См. раздел 1.7. Будьте еще более подробны, чем обычно. Поскольку MySQL работает у многих людей, катастрофический отказ мог бы следовать из чего-то, что существует только на Вашем компьютере (например, ошибка, которая связана с Вашими особыми системными библиотеками).
  • Если у Вас есть проблема с таблицами, содержащими строки динамической длины и Вы используете только столбцы VARCHAR (не BLOB или TEXT), Вы можете попытаться изменить все VARCHAR на CHAR с помощью ALTER TABLE. Это вынуждает MySQL использовать строки фиксированного размера. Строки фиксированного размера занимают небольшое дополнительное место, но намного более терпимы к повреждению.

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

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

B.5.3.4. Как MySQL обрабатывает переполнение диска

Этот раздел описывает, как MySQL отвечает на ошибки переполнения диска (такие, как no space left on device) и ошибки исчерпания квоты (такие, как write failed или user block limit reached).

Этот раздел важен для записи в таблицы MyISAM. Это также применими к записи файлов двоичного журнала, за исключением того, что ссылки на строки и записи здесь означают события.

Когда происходит переполнение диска, MySQL делает следующее:

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

  • Каждые 10 минут он пишет запись в файл системного журнала, предупреждая о переполнении диска.

Чтобы облегчить проблему, предпримите следующие меры:

  • Чтобы продолжить работу, Вы должны только освободить достаточно дискового пространства, чтобы вставить все записи.

  • Альтернативно, чтобы прервать поток, используйте mysqladmin kill . Поток будет прерван, когда он в следующий раз проверяет диск (через одну минуту).
  • Другие потоки могли бы ждать таблицу, которая вызвала переполнение. Если у Вас есть несколько блокированных потоков, уничтожение одного потока, который ждет при переполнении диска, позволяет другим потокам продолжить работу.

Исключения к предыдущему поведению: когда Вы используете REPAIR TABLE или OPTIMIZE TABLE или же когда индекс создается в пакете после LOAD DATA INFILE или после запроса ALTER TABLE. Все эти запросы могут создать большие временные файлы, которые вызывают большие проблемы для остальной части системы. Если диск становится полным, в то время как MySQL делает любую из этих операций, это удаляет большие временные файлы и отмечает таблицу как разрушенную. Исключение из этого: ALTER TABLE, старая таблица не меняется вообще.

B.5.3.5. Где MySQL хранит временные файлы

В Unix MySQL использует значение переменной окружения TMPDIR как путь к каталогу, в котором можно хранить временные файлы. Если TMPDIR не задана, MySQL использует системное значение по умолчанию, которое обычно является /tmp, /var/tmp или /usr/tmp.

В Windows MySQL проверяет в порядке значения переменные окружения TMPDIR, TEMP и TMP. Найдя первую, которая установлена, MySQL использует ее и не проверяет те, которые остаются. Если ни одна из TMPDIR, TEMP или TMP не установлены, MySQL использует системное значение по умолчанию Windows, которое обычно является C:\windows\temp\.

Если файловая система, содержащая Ваш временный каталог, является слишком маленькой, Вы можете использовать mysqld с опцией --tmpdir, чтобы определить каталог в файловой системе, где у Вас есть достаточно пространства. На ведомых устройствах репликации Вы можете использовать --slave-load-tmpdir, чтобы определить отдельный каталог для хранения временных файлов для обработки запросов LOAD DATA INFILE.

Опция --tmpdir может быть установлена в список из нескольких путей, которые используются круговым способом. Пути должны быть отделены символами двоеточия (:) в Unix и символом точки с запятой (;) в Windows.

Чтобы распределить нагрузку эффективно, эти пути должны быть расположены на различных физических дисках, а не на разных разделах того же самого диска.

Если сервер MySQL действует как ведомое устройство репликации, Вы должны убедиться, что установили --slave-load-tmpdir не на каталог, который находится в основанной на памяти файловой системе или каталог, который очищен, когда хост сервера перезапускается. Ведомое устройство нуждается в некоторых из своих временных файлов, чтобы пережить машинный перезапуск так, чтобы оно могло копировать временные таблицы или операции LOAD DATA INFILE. Если файлы в ведомом временном каталоге потеряны, когда сервер перезапускается, репликация терпит неудачу.

MySQL обеспечивает то, что временные файлы удалены, если mysqld прерван. На платформах, которые поддерживают это (такие, как Unix), это сделано, отвязывая файл после открытия. Недостаток в том, что имя не появляется в списках каталога, и Вы не видите большой временный файл, который заполняет файловую систему, в которой расположен временный каталог. В таких случаях lsof +L1 может быть полезным в идентификации больших файлов, связанных с mysqld.

Сортируя (ORDER BY или GROUP BY) MySQL обычно использует один или два временных файла. Максимальное требуемое дисковое пространство определено следующим выражением:

(длина того, что сортируется + sizeof(Размер указателя строки)) *
 число соответствующих строк * 2
Размер указателя строки обычно четыре байта, но может вырасти в будущем для действительно больших таблиц.

Для некоторых SELECT запросов MySQL также составляет временные таблицы SQL. Они не скрыты и имеют названия формы SQL_*.

В большинстве случаев ALTER TABLE создает временную копию оригинальной таблицы в том же самом каталоге, где оригинальная таблица.

Где InnoDB хранит временные файлы

Временные таблицы InnoDB сохранены во временном файле табличного пространства ibtmp1, который расположен в каталоге MySQL data (по умолчанию datadir). Опция innodb_temp_data_file_path может использоваться при запуске, чтобы определить иное имя файла и местоположение.

Если работа ALTER TABLE на таблице InnoDB использует метод ALGORITHM=COPY, InnoDB создает временную копию таблицы в том же самом каталоге, где оригинальная таблица. Временные табличные имена файла начинаются с префикса #sql- и появляется кратко только во время выполнения ALTER TABLE.

Если работа ALTER TABLE восстанавливает таблицц InnoDB, используя метод ALGORITHM=INPLACE (online DDL), InnoDB создает промежуточную копию таблицы в том же самом каталоге, где и оригинальная таблица. Промежуточные табличные имена файла начинаются с префикса #sql-ib.

ALTER TABLE, которые восстанавливают таблицы InnoDB, используя метод ALGORITHM=INPLACE (online DDL) также создают временные файлы сортировки во временном каталоге MySQL ($TMPDIR в Unix, %TEMP% в Windows, или каталоге, определенном опцией --tmpdir). Если временный каталог не является достаточно большим, чтобы содержать такие файлы, Вы, возможно, должны реконфигурировать tmpdir. Альтернативно, Вы можете определить отдельный временный каталог для InnoDB операций ALTER TABLE, используя опцию innodb_tmpdir. Эта опция была введена, чтобы помочь избежать временных переполнений каталога, которые могли произойти в результате больших временных файлов, создаваемых во время ALTER TABLE. innodb_tmpdir может быть сконфигурирована динамически, используя команды SET GLOBAL или SET SESSION.

Опция innodb_tmpdir неприменима к промежуточным табличным файлам, которые всегда создаются в том же самом каталоге, где оригинальная таблица.

В окружающей среде репликации стоит копировать только настройку innodb_tmpdir, если у всех серверов есть та же самая окружающая среда операционной системы. Иначе, мультиплицирование innodb_tmpdir может привести к отказу операций ALTER TABLE. Если операционные среды серверов отличаются, рекомендуется сконфигурировать innodb_tmpdir на каждом сервере индивидуально.

B.5.3.6. Как защитить или изменить файл сокета Unix MySQL

Местоположение по умолчанию для файла сокета Unix, который использует сервера для коммуникации с местными клиентами /tmp/mysql.sock. Для некоторых форматов дистрибутивов каталог может отличаться, например, /var/lib/mysql для RPM.

На некоторых версиях Unix любой может удалить файлы в каталоге /tmp или другом подобном каталоге, который используется для временных файлов. Если файл сокета расположен в таком каталоге в Вашей системе, это могло бы вызвать проблемы.

На большинстве версий Unix Вы можете защитить Ваш каталог /tmp так, чтобы файлы могли быть удалены только их владельцами или суперпользователем (root). Чтобы сделать это, установите бит sticky каталогу /tmp, войдя в систему как root и применив такую команду:

shell> chmod +t /tmp
Вы можете проверить установлен ли бит sticky, выполняя команду ls -ld /tmp. Если последний символ прав доступа t, значит бит установлен.

Другой подход должен изменить место, где сервер создает файл. Если Вы делаете это, Вы должны также позволить программам клиента узнать новое местоположение файла. Вы можете определить местоположение файла несколькими способами:

  • Определите путь в глобальном или местном файле опции. Например, вставьте следующие строки в /etc/my.cnf:

    [mysqld]
    socket=/path/to/socket
    
    [client]
    socket=/path/to/socket
    
  • Определите опцию --socket в командной строке mysqld_safe, когда Вы выполняете программы клиента.
  • Установите переменную окружения MYSQL_UNIX_PORT в путь к файлу сокета Unix.
  • Повторно соберите MySQL из исходных текстов, чтобы использовать иное местоположение файла по умолчанию. Определите путь к файлу с помощью опции MYSQL_UNIX_ADDR, когда Вы выполняете CMake . См. раздел 2.8.4 .

Вы можете проверить, работает ли новое местоположение, пытаясь соединиться с сервером этой командой:

shell> mysqladmin --socket=/path/to/socket version

B.5.3.7. Проблемы с зонами времени

Если у Вас есть проблема с SELECT NOW(), возвращающем значения в UTC, а не Вашем местном времени, Вы должны сказать серверу свою зону текущего времени. То же самое применяется, если UNIX_TIMESTAMP() возвращает неправильное значение. Это должно быть сделано для среды, в которой работает сервер, например, в mysqld_safe или mysql.server . См. раздел 5.9.

Вы можете установить часовой пояс для сервера с помощью опции --timezone= timezone_name при вызове mysqld_safe . Вы можете также установить это, устанавливая переменную окружения TZ прежде, чем Вы запустите mysqld.

Допустимые значения для --timezone или TZ зависят от ОС. Консультируйтесь со своей документацией на операционную систему, чтобы видеть, какие значения являются приемлемыми.

B.5.4. Связанные с запросом проблемы

B.5.4.1. Чувствительность к регистру в поиске строки

Для небинарных строк (CHAR, VARCHAR, TEXT) поиски строки используют сопоставление операндов сравнения. Для двоичных строк (BINARY, VARBINARY, BLOB) сравнения используют числовые значения байтов в операндах, это означает, что для буквенных символов сравнения будут чувствительными к регистру.

Сравнение между небинарной и двоичной строками обработано как сравнение двоичных строк.

Простые операции сравнения (>=, >, =, <, <=, сортировка и группировка) основаны на сортировочном значении каждого символа. Символы с тем же самым сортировочным значением обработаны как тот же самый символ. Например, если e и ц╘ имеют то же самое значение сортировки в данном сопоставлении, они сравниваются как равные.

Набор символов и сопоставление по умолчанию latin1 и latin1_swedish_ci, таким образом, небинарные строковые сравнения являются нечувствительными к регистру по умолчанию. Это означает что, если Вы ищете с col_name LIKE 'a%', Вы получаете все значения столбцов, которые начинаются с A или a . Чтобы сделать этот поиск чувствительным к регистру, удостоверьтесь, что у одного из операндов есть чувствительное к регистру или двоичное сопоставление. Например, если Вы сравниваете столбец и строку, которые оба имеют набор символов latin1, Вы можете использовать оператор COLLATE, чтобы заставить любой операнд иметь сопоставление latin1_general_cs или latin1_bin:

col_name COLLATE latin1_general_cs LIKE 'a%'
col_name LIKE 'a%' COLLATE latin1_general_cs
col_name COLLATE latin1_bin LIKE 'a%'
col_name LIKE 'a%' COLLATE latin1_bin
Если Вы хотите, чтобы столбец всегда был обработан чувствительным к регистру способом, объявите его чувствительным к регистру или двоичным. См. раздел 14.1.15.

Чтобы заставить чувствительное к регистру сравнение недвоичных строк быть нечувствительным к регистру, надо использовать COLLATE с именем сопоставления, нечувствительного к регистру. Строки в следующем примере обычно являются чувствительными к регистру, но COLLATE изменяет сравнение, чтобы быть нечувствительным к регистру:

mysql> SET @s1 = 'MySQL' COLLATE latin1_bin,
    -> @s2 = 'mysql' COLLATE latin1_bin;
mysql> SELECT @s1 = @s2;
+-----------+
| @s1 = @s2 |
+-----------+
| 0         |
+-----------+
mysql> SELECT @s1 COLLATE latin1_swedish_ci = @s2;
+-------------------------------------+
| @s1 COLLATE latin1_swedish_ci = @s2 |
+-------------------------------------+
| 1                                   |
+-------------------------------------+
Двоичная строка является чувствительной к регистру в сравнениях. Чтобы сравнить строку как нечувствительную к регистру, преобразуйте ее в небинарную строку и используйте COLLATE, чтобы указать нечувствительное к регистру сопоставление:
mysql> SET @s = BINARY 'MySQL';
mysql> SELECT @s = 'mysql';
+--------------+
| @s = 'mysql' |
+--------------+
| 0            |
+--------------+
mysql> SELECT CONVERT(@s USING latin1) COLLATE latin1_swedish_ci = 'mysql';
+--------------------------------------------------------------+
| CONVERT(@s USING latin1) COLLATE latin1_swedish_ci = 'mysql' |
+--------------------------------------------------------------+
| 1                                                            |
+--------------------------------------------------------------+
Чтобы определить, сравнится ли значение как недвоичная или двоичная строка, используйте функцию COLLATION() . Этот пример показывает, что VERSION() возвращает строку, у которой есть нечувствительное к регистру сопоставление, таким образом, сравнения являются нечувствительными к регистру:
mysql> SELECT COLLATION(VERSION());
+----------------------+
| COLLATION(VERSION()) |
+----------------------+
| utf8_general_ci|
+----------------------+
Для двоичных строк значение сопоставления binary, таким образом, сравнения будут чувствительными к регистру. Один контекст, в котором Вы будете видеть binary, это для сжатия и функций шифрования, которые возвращают двойные строки как правило:
mysql> SELECT COLLATION(ENCRYPT('x')), COLLATION(SHA1('x'));
+-------------------------+----------------------+
| COLLATION(ENCRYPT('x')) | COLLATION(SHA1('x')) |
+-------------------------+----------------------+
| binary                  | binary               |
+-------------------------+----------------------+
Чтобы проверить значение сортировки строки, можно применить функцию WEIGHT_STRING(). См. раздел 13.5.

B.5.4.2. Проблемы со столбцами DATE

Формат значений DATE 'YYYY-MM-DD'. Согласно стандарту SQL, не разрешен никакой другой формат. Вы должны использовать этот формат в выражениях UPDATE и предложениях WHERE оператора SELECT. Например:

SELECT * FROM t1 WHERE date >= '2003-05-05';
Как удобство, MySQL автоматически преобразовывает дату в число, если дата используется в числовом контексте и наоборот. MySQL также разрешает строковый формат при обновлении и в предложении WHERE, который сравнивает дату со столбцами DATE , DATETIME или TIMESTAMP. Этот формат означает, что любой символ пунктуации может использоваться в качестве разделителя между частями. Например, '2004-08-15' эквивалентно '2004#08#15'. MySQL может также преобразовать строку, не содержащую разделителей (например, '20040815'), если это имеет смысл как дата.

Когда Вы сравниваете DATE, TIME, DATETIME или TIMESTAMP с постоянной строкой с помощью операторов <, <=, =, >=, > или BETWEEN, MySQL обычно преобразовывает строку во внутреннее длинное целое для более быстрого сравнения. Однако, это преобразование подвергается следующим исключениям:

  • Когда Вы сравниваете два столбца.

  • Когда Вы сравниваете столбцы DATE , TIME, DATETIME или TIMESTAMP с выражением.
  • Когда Вы используете любой метод сравнения, кроме только что перечисленных, такой как IN или STRCMP().

Для этих исключений сравнение сделано, преобразовывая объекты в строки и выполняя строковое сравнение.

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

Специальная нулевая дата '0000-00-00' может быть сохранена и получена как '0000-00-00'. Когда дата '0000-00-00' используется через Connector/ODBC, она автоматически преобразована в NULL, потому что ODBC не может обработать такую дату.

Поскольку MySQL выполняет только описанные преобразования, следующие запросы работают (считается, что idate столбец типа DATE):

INSERT INTO t1 (idate) VALUES (19970505);
INSERT INTO t1 (idate) VALUES ('19970505');
INSERT INTO t1 (idate) VALUES ('97-05-05');
INSERT INTO t1 (idate) VALUES ('1997.05.05');
INSERT INTO t1 (idate) VALUES ('1997 05 05');
INSERT INTO t1 (idate) VALUES ('0000-00-00');

SELECT idate FROM t1 WHERE idate >= '1997-05-05';
SELECT idate FROM t1 WHERE idate >= 19970505;
SELECT MOD(idate,100) FROM t1 WHERE idate >= 19970505;
SELECT idate FROM t1 WHERE idate >= '19970505';
Однако, следующий запрос не работает:
SELECT idate FROM t1 WHERE STRCMP(idate,'20030505')=0;
STRCMP() строковая функция, таким образом, это преобразовывает idate в строку в формате 'YYYY-MM-DD' и выполняет строковое сравнение. Это не преобразовывает '20030505' в дату '2003-05-05' и выполняет сравнение даты.

Если Вы включаете режим SQL ALLOW_INVALID_DATES , MySQL разрешает Вам хранить даты, которые прошли только ограниченную проверку: MySQL требует только, чтобы день был в диапазоне от 1 до 31, и месяц находится в диапазоне от 1 до 12. Это делает MySQL очень удобным для Веб-приложений, где Вы получаете год, месяц и день в трех различных полях и хотите сохранить точно, что пользователь вставил (без проверки допустимости даты).

MySQL разрешает Вам хранить даты, где день или месяц и день ноль. Это удобно, если Вы хотите сохранить дату рождения в столбец DATE и знаете только часть даты. Чтобы отвергнуть нулевые части месяца или дня в датах, включите режим NO_ZERO_IN_DATE .

MySQL разрешает Вам хранить значение ноля ('0000-00-00'). Это в некоторых случаях более удобно, чем использование значений NULL. Если дата, которая будет сохранена в столбце DATE не может быть преобразована ни в какое разумное значение, MySQL запишет '0000-00-00'. Чтобы запретить '0000-00-00', включите режим NO_ZERO_DATE .

Сделать, чтобы MySQL проверил все даты и принял только легальные даты (если не переопределено IGNORE) можно, задав системной переменной sql_mode значение "NO_ZERO_IN_DATE,NO_ZERO_DATE".

B.5.4.3. Проблемы со значениями NULL

Понятие значения NULL общий источник беспорядка для новичков в SQL, которые часто думают, что NULL та же самая вещь, что и пустая строка ''. Дело обстоит не так. Например, следующие запросы абсолютно отличаются:

mysql> INSERT INTO my_table (phone) VALUES (NULL);
mysql> INSERT INTO my_table (phone) VALUES ('');
Оба запроса вставляют значение в столбец phone, но первый вставляет значение NULL, а второй пустую строку. Значение первого может быть расценено как "номер телефона неизвестен", а второго как "человек, как известно, не имеет никакого телефона, и таким образом никакого телефонного номера". Разница есть?

Для помощи с обработкой NULL Вы можете использовать операторы IS NULL и IS NOT NULL, а также функцию IFNULL().

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

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
Чтобы искать значения столбцов, которые являются NULL, Вы не можете использовать тест expr = NULL. Следующее выражение не возвращает строк, потому что expr = NULL никогда не истина для любого выражения:
mysql> SELECT * FROM my_table WHERE phone = NULL;
Чтобы найти значения NULL, Вы должны использовать тест IS NULL. Следующие запросы показывают, как найти телефонный номер NULL и пустой номер телефона:
mysql> SELECT * FROM my_table WHERE phone IS NULL;
mysql> SELECT * FROM my_table WHERE phone = '';

Вы можете добавить индекс на столбце, который может иметь значения NULL, если Вы используете механизм хранения MyISAM, InnoDB или MEMORY. Иначе Вы должны объявить индексированный столбец NOT NULL и Вы не можете вставить в него NULL.

При чтении данных с помощью LOAD DATA INFILE пустые или недостающие столбцы обновлены с значением ''. Чтобы загрузить значение NULL в столбец, используйте в файле данных \N. Буквальное слово NULL также может использоваться при некоторых обстоятельствах. См. раздел 14.2.6.

Используя DISTINCT, GROUP BY или ORDER BY, все значения NULL расценены как равные.

Используя ORDER BY, значения NULL представлены сначала, или последними, если Вы определяете DESC.

Агрегатные функции (COUNT() , MIN() и SUM()) значения NULL игнорируют. Исключение: COUNT(*), которая считает строки, а не отдельные значения столбцов. Например, следующий запрос производит два результата. Первым является количество строк в таблице, вторым является количество значений не-NULL в столбце age:

mysql> SELECT COUNT(*), COUNT(age) FROM person;

Для некоторых типов данных, дескрипторов MySQL, значения NULL особенны. Если Вы вставляете NULL в столбец TIMESTAMP, реально вставятся текущие дата и время. Если Вы вставляете NULL в столбец целого числа или с плавающей запятой, который имеет атрибут AUTO_INCREMENT , следующее число в последовательности будет вставлено.

B.5.4.4. Проблемы с псевдонимами столбцов

Псевдоним может использоваться в запросе, чтобы дать столбцу другое имя. Вы можете использовать псевдоним в GROUP BY, ORDER BY или HAVING, чтобы обратиться к столбцу:

SELECT SQRT(a*b) AS root FROM tbl_name
       GROUP BY root HAVING root > 0;
SELECT id, COUNT(*) AS cnt FROM tbl_name
       GROUP BY id HAVING cnt > 0;
SELECT id AS 'Customer identity' FROM tbl_name;
Стандартный SQL отвергает ссылки на псевдонимы столбца в предложении WHERE. Это ограничение введено потому, что когда WHERE оценивается, значение столбца еще не могло быть определено. Например, следующий запрос незаконен:
SELECT id, COUNT(*) AS cnt FROM tbl_name
       WHERE cnt > 0 GROUP BY id;
Предложение WHERE определяет, какие строки должны быть включены в предложение GROUP BY, но это обращается к псевдониму значения столбца, которое неизвестно, пока строки не будут выбраны и сгруппированы с помощью GROUP BY.

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

SELECT 1 AS `one`, 2 AS 'two';
В другом месте в запросе заключенные в кавычки ссылки на псевдоним должны использовать заключение в кавычки идентификатора, или ссылка будет обработана как буквальная строка. Например, этот запрос группирует значения в столбце id, на который ссылаются, псевдонимом `a`:
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
       GROUP BY `a`;
Но этот запрос группирует буквальной строкой 'a' и не будет работать как ожидалось:
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
       GROUP BY 'a';

B.5.4.5. Проблема с отменой для нетранзакционных таблиц

Если Вы получаете следующее сообщение, пытаясь выполнить ROLLBACK, это означает, что одна или больше таблиц, которые Вы использовали, не поддерживают транзакции:

Warning: Some non-transactional changed tables couldn't be rolled back
Эти таблицы не затронуты командой ROLLBACK .

Если Вы сознательно не смешивали транзакционные и нетранзакционные таблицы в пределах транзакции, наиболее вероятная причина для этого сообщения состоит в том, что таблица, которая, как Вы думали, была транзакционной, таковой на деле не оказалась. Это может произойти, если Вы пытаетесь составить таблицу, используя транзакционный механизм хранения, который не поддержан Вашим сервером mysqld (или это было отключено с опцией запуска). Если mysqld не поддерживает механизм хранения, он вместо этого составляет таблицу как MyISAM, которая является нетранзакционной.

Вы можете проверить механизм хранения таблицы при использовании любого из этих запросов:

SHOW TABLE STATUS LIKE 'tbl_name';
SHOW CREATE TABLE tbl_name;
См. разделы 14.7.5.36 и 14.7.5.10.

Чтобы проверить, какие механизмы хранения Ваш mysqld поддерживает, используйте этот запрос:

SHOW ENGINES;
См. раздел 14.7.5.16.

B.5.4.6. Удаление строк из связанных таблиц

Если полная длина запроса DELETE для related_table превышает 1MB (значение по умолчанию системной переменной max_allowed_packet), Вы должны разделить это на меньшие части и выполнить много запросов DELETE. Вы, вероятно, получаете самый быстрый DELETE определяя только от 100 до 1000 значений related_column в запросе, если related_column индексирован. Если related_column не индексирован, скорость независима от числа параметров в IN.

B.5.4.7. Решение проблем с несоответствием строк

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

  1. Проверьте запрос с EXPLAIN, чтобы выяснить, можете ли Вы найти что-то очевидно неправильное. См. раздел 14.8.2.

  2. Выберите только те столбцы, которые используются в предложении WHERE.
  3. Удалите по одной таблице за раз из запроса, пока он не возвратит некоторые строки. Если таблицы являются большими, хорошая идея использовать LIMIT 10 с этим запросом.
  4. Выполните SELECT для столбца, который должен был соответствовать строке таблицы, которая была последней удалена из запроса.
  5. Если Вы сравниваете столбцы FLOAT или DOUBLE с десятичными числами, Вы не можете использовать равенство (=). Эта проблема распространена в большинстве машинных языков, потому что не все значения с плавающей запятой могут быть сохранены точно. В некоторых случаях изменение FLOAT на DOUBLE поправит дело. См. раздел B.5.4.8.
  6. Если Вы все еще не можете выяснить что не так, попробуйте создать минимальный тест, который может быть выполнен с mysql test < query.sql, это показывает Ваши проблемы. Вы можете создать испытательный файл, выводя таблицы с mysqldump --quick db_name tbl_name_1 ... tbl_name_n > query.sql. Откройте файл в редакторе, удалите некоторые строки (если там более, чем необходимо, чтобы продемонстрировать проблему), и добавьте Ваш запрос SELECT в конце тестового файла.

    Проверьте, что испытательный файл демонстрирует проблему, выполняя эти команды:

    shell> mysqladmin create test2
    shell> mysql test2 < query.sql
    
    Присоедините испытательный файл к отчету об ошибках, который Вы можете зарегистрировать, используя инструкции в разделе 1.7.

B.5.4.8. Проблемы со значениями с плавающей запятой

Числа с плавающей запятой иногда вызывают беспорядок, потому что они приблизительны и не сохраненные как точные значения. Значение с плавающей запятой как записано в запросе SQL возможно, не то же самое значение, которое представлено внутренне. Попытки обработать значения с плавающей запятой как точные в сравнениях могут привести к проблемам. Они также подвергаются зависимостям от платформы. Типы данных FLOAT и DOUBLE подвергаются этим проблемам. Для столбцов DECIMAL MySQL выполняет операции с точностью 65 десятичных цифр, которые должны решить наиболее распространенные проблемы погрешности.

Следующее использование в качестве примера DOUBLE показывает, как вычисления, которые сделаны, используя операции с плавающей запятой, приводят к ошибке с плавающей запятой.

mysql> CREATE TABLE t1 (i INT, d1 DOUBLE, d2 DOUBLE);
mysql> INSERT INTO t1 VALUES (1, 101.40, 21.40), (1, -80.00, 0.00),
    -> (2, 0.00, 0.00), (2, -13.20, 0.00), (2, 59.60, 46.40),
    -> (2, 30.40, 30.40), (3, 37.00, 7.40), (3, -29.60, 0.00),
    -> (4, 60.00, 15.40), (4, -10.60, 0.00), (4, -34.00, 0.00),
    -> (5, 33.00, 0.00), (5, -25.80, 0.00), (5, 0.00, 7.20),
    -> (6, 0.00, 0.00), (6, -51.40, 0.00);
mysql> SELECT i, SUM(d1) AS a, SUM(d2) AS b
    ->        FROM t1 GROUP BY i HAVING a <> b;
+--+------+------+
| i| a    | b    |
+--+------+------+
|1 | 21.4 | 21.4 |
|2 | 76.8 | 76.8 |
|3 |  7.4 |  7.4 |
|4 | 15.4 | 15.4 |
|5 |  7.2 |  7.2 |
|6 |-51.4 |    0 |
+--+------+------+
Результат правилен. Хотя первые пять записей, похоже, не должны удовлетворить сравнение (значения a и b не отличаются), они могут сделать это, потому что различие между числами обнаруживается после десятого знака или в зависимости от факторов, таких как архитектура системы, версия компилятора или уровень оптимизации. Например, различные центральные процессоры могут оценить числа с плавающей запятой по-другому.

Если столбцы d1 и d2 определены как DECIMAL вместо DOUBLE, результат запроса SELECT содержал бы только одну строку: последнюю из показанных выше.

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

mysql> SELECT i, SUM(d1) AS a, SUM(d2) AS b FROM t1
    ->        GROUP BY i HAVING ABS(a - b) > 0.0001;
+--+-------+---+
| i|    a  | b |
+--+-------+---+
|6 | -51.4 | 0 |
+--+-------+---+
1 row in set (0.00 sec)
Наоборот, чтобы получить строки, где числа те же самые, тест должен найти различия в пределах значения терпимости:
mysql> SELECT i, SUM(d1) AS a, SUM(d2) AS b FROM t1
    ->        GROUP BY i HAVING ABS(a - b) <= 0.0001;
+--+------+------+
| i| a    | b    |
+--+------+------+
|1 | 21.4 | 21.4 |
|2 | 76.8 | 76.8 |
|3 |  7.4 |  7.4 |
|4 | 15.4 | 15.4 |
|5 |  7.2 |  7.2 |
+--+------+------+
5 rows in set (0.03 sec)
Значения с плавающей запятой подвергаются зависимостям от среды выполнения или платформы. Предположите, что Вы выполняете следующие запросы:
CREATE TABLE t1(c1 FLOAT(53,0), c2 FLOAT(53,0));
INSERT INTO t1 VALUES('1e+52','-1e+52');
SELECT * FROM t1;
На некоторых платформах SELECT вернет inf и -inf. На других это возвращает 0 и -0.

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

B.5.5. Проблемы с оптимизацией запросов

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

Для случаев, когда MySQL не делает "правильной" вещи, есть инструменты, которые могут помочь MySQL:

  • Используйте оператор EXPLAIN , чтобы получить информацию о том, как MySQL обрабатывает запрос. Чтобы использовать это, только добавьте ключевое слово EXPLAIN в начало Вашего запроса SELECT:

    mysql> EXPLAIN SELECT * FROM t1, t2 WHERE t1.i = t2.i;
    
  • Используйте ANALYZE TABLE tbl_name, чтобы обновить ключевые распределения для просмотренной таблицы. См. раздел 14.7.2.1.
  • Используйте FORCE INDEX, чтобы сказать MySQL, что сканирование таблицы очень дорого по сравнению с использованием индекса:
    SELECT * FROM t1, t2 FORCE INDEX (index_for_column)
             WHERE t1.col_name=t2.col_name;
    
    USE INDEX и IGNORE INDEX также могут быть полезны. См. раздел 9.9.4.
  • Глобальный и на уровне таблицы STRAIGHT_JOIN. См. раздел 14.2.9.
  • Вы можете настроить глобальные или определенные для потока системные переменные. Например, запустите mysqld с --max-seeks-for-key=1000 или используйте SET max_seeks_for_key=1000, чтобы сказать оптимизатору предположить, что никакой ключевой просмотр не просмотрит больше, чем 1000 ключей. См. раздел 6.1.5.

B.5.6. Проблемы определения таблиц

B.5.6.1. Проблемы с ALTER TABLE

Если Вы получаете дублирования ключа, используя ALTER TABLE, чтобы изменить набор символов или сопоставление символьного столбца, причина в том, что новое сопоставление столбца отображает два ключа на то же самое значение или таблица повреждена. В последнем случае Вы должны запустить REPAIR TABLE на таблице. REPAIR TABLE работает для таблиц MyISAM, ARCHIVE и CSV.

Если Вы используете ALTER TABLE на транзакционной таблице или если Вы используете Windows, ALTER TABLE разблокирует таблицу, если Вы сделали LOCK TABLE для нее. Это сделано потому что InnoDB и эти операционные системы не могут удалить таблицу, которая используется.

B.5.6.2. Проблемы с таблицами TEMPORARY

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

  • Таблица TEMPORARY может иметь типы только MEMORY, MyISAM, MERGE или InnoDB.

  • Вы не можете обратиться к таблице TEMPORARY несколько раз в том же самом запросе. Например, следующее не работает:
    mysql> SELECT * FROM temp_table, temp_table AS t2;
    ERROR 1137: Can't reopen table: 'temp_table'
    
    Эта ошибка также происходит, если Вы обращаетесь к временной таблице многократно в сохраненной функции под различными псевдонимами, даже если ссылки происходят в различных запросах в пределах функции.
  • Запрос SHOW TABLES не перечисляет таблицы TEMPORARY.
  • Вы не можете использовать RENAME, чтобы переименовать таблицу TEMPORARY. Однако, Вы можете использовать ALTER TABLE:
    mysql> ALTER TABLE orig_name RENAME new_name;
    
  • Известны проблемы в использовании временных таблиц с репликацией. См. раздел 19.4.1.
  • Временные таблицы, составленные вне сохраненных функций и упомянутые в нескольких запросах могут привести к этой ошибке:
    ERROR 1137: Can't reopen table: 'temp_table'
    

B.5.7. Известные проблемы в MySQL

Этот раздел перечисляет известные проблемы в недавних версиях MySQL.

Для информации о специфических вопросах платформы, см. разделы 2.1 и 26.5.

Следующие проблемы известны:

  • Оптимизация подзапроса для IN не столь эффективна, как для =.

  • Даже если Вы используете lower_case_table_names=2 (что позволяет MySQL помнить случай, используемый для баз данных и имен таблиц), MySQL не помнит случай, используемый для имен базы данных для функции DATABASE() или в разных журналах (на нечувствительных к регистру системах).
  • Удаление ограничения FOREIGN KEY не работает в репликации, потому что у ограничения может быть другое имя на ведомом устройстве.
  • REPLACELOAD DATA с опцией REPLACE) не вызывает триггер ON DELETE CASCADE.
  • DISTINCT с ORDER BY не работает внутри GROUP_CONCAT(), если Вы не используете все и только те столбцы, которые находятся в списке DISTINCT.
  • Вставляя большое целочисленное значение (между 263 и 264-1) в десятичное число или строковый столбец, вставите его как отрицательную величину, потому что число оценено в контексте целого числа со знаком.
  • С основанным на запросе двоичным протоколированием ведущее устройство пишет выполненные запросы в двоичный журнал. Это очень быстрый, компактный и эффективный метод журналирования, который работает отлично в большинстве случаев. Однако, данные по ведущему и ведомому устройству могут стать отличающимся, если запрос разработан таким способом, что модификация данных недетерминирована (вообще не рекомендуемая практика, даже за пределами репликации).

    Например:

    • Запросы CREATE TABLE ... SELECT или INSERT ... SELECT, которые вставляют ноль или значение NULL в столбец AUTO_INCREMENT.

    • DELETE, если Вы удаляете строки из таблицы, у которой есть внешние ключи со свойством ON DELETE CASCADE.
    • REPLACE ... SELECT, INSERT IGNORE ... SELECT, если у Вас есть двойные значения ключа во вставленных данных.

    Если и только если предыдущие запросы не имеют предложения ORDER BY, гарантирующего детерминированный порядок .

    Например, для INSERT ... SELECT без ORDER BY SELECT может возвратить строки в разном порядке, в зависимости от выбора, сделанного оптимизаторами на ведущем и ведомом устройствах. Приведет это к разным значениями в столбце AUTO_INCREMENT на разных системах.

    Запрос оптимизирован по-другому на ведущем и ведомом устройствах только если:

    • Таблица сохранена, используя различные механизмы хранения на ведущем и ведомом устройстве. Возможно использовать различные механизмы хранения в этой ситуации. Например, Вы можете использовать InnoDB на ведущем, но MyISAM на ведомом, если у ведомого устройства есть меньше доступного дискового пространства.

    • MySQL буферизует размеры (key_buffer_size и т.п. на ведущем и ведомом устройствах по-разному.
    • Ведущее и ведомое устройства выполняют разные версии MySQL, а код оптимизатора отличается между этими версиями.

    Эта проблема может также затронуть восстановление базы данных, используя mysqlbinlog|mysql.

    Самый легкий способ избежать этой проблемы состоит в том, чтобы добавить ORDER BY к вышеупомянутым недетерминированным запросам, чтобы гарантировать, что строки всегда сохранены или изменяются в том же самом порядке. Использование основанного на строке или смешанного формата журналирования также избегает проблемы.

  • Имена файла системного журнала основаны на имени хоста сервера, если Вы не определяете имя файла с опцией запуска. Чтобы сохранить те же самые имена файла системного журнала, если Вы изменяете свое имя хоста на что-то еще, Вы должны явно использовать опцию --log-bin=old_host_name-bin. См. раздел 6.1.4. Альтернативно, переименуйте старые файлы, чтобы отразить Ваше изменение имени хоста. Если они двоичные журналы, Вы должны отредактировать индексный файл журнала и установить имена файлов системного журнала также и там.
  • mysqlbinlog не удаляет временные файлы после оператора LOAD DATA INFILE. См. раздел 5.6.8.
  • RENAME не работает с таблицами TEMPORARY или с таблицами, примененными в MERGE.
  • Используя SET CHARACTER SET, Вы не можете использовать преобразованные символы в именах базы данных, таблицы и столбцов.
  • Вы не можете использовать _ или % с ESCAPE в LIKE ... ESCAPE .
  • Сервер использует только первые max_sort_length байт, сравнивая значения данных. Это означает, что значения не могут достоверно использоваться в GROUP BY, ORDER BY или DISTINCT, если они отличаются только после первых max_sort_length байтов. Чтобы обойти это, увеличьте значение переменной. Значение по умолчанию 1024, оно может быть изменено во время запуска или выполнения сервера.
  • Числовые вычисления сделаны с BIGINT или DOUBLE (оба обычно 64 бита длиной). Точность, которую Вы получаете, зависит от функции. Общее правило состоит в том, что разрядные функции выполнены с BIGINT, IF() и ELT() с BIGINT или DOUBLE, а остальные с DOUBLE. Вы должны попытаться избегать использования значений unsigned long long, если они могут быть больше, чем 63 бита (9223372036854775807) для чего-нибудь, кроме битовых полей.
  • У Вас может быть до 255 столбцов ENUM и SET в одной таблице.
  • В функциях MIN(), MAX() и других совокупных функциях MySQL в настоящее время сравнивает столбцы ENUM и SET их строковым значением, а не относительной позицией строки в наборе.
  • В UPDATE столбцы обновлены слева направо. Если Вы обращаетесь к обновленному столбцу, Вы получаете обновленное значение вместо оригинального значения. Например, следующии запрос увеличивает KEY на 2, а не на 1:
    mysql> UPDATE tbl_name SET KEY=KEY+1,KEY=KEY+1;
    
  • Вы можете обратиться к нескольким временным таблицам в том же самом запросе, но Вы не можете обратиться ни к какой данной временной таблице не раз. Например, следующее не работает:
    mysql> SELECT * FROM temp_table, temp_table AS t2;
    ERROR 1137: Can't reopen table: 'temp_table'
    
  • Оптимизатор может обработать DISTINCT по-другому, когда Вы используете столбцы hidden в join. В join столбцы hidden посчитаны как часть результата (даже если их не показывают), тогда как в нормальных запросах, такие столбцы не участвуют в сравнении DISTINCT .

    Пример этого:

    SELECT DISTINCT mp3id FROM band_downloads WHERE userid = 9 ORDER BY id DESC;
    
    и
    SELECT DISTINCT band_downloads.mp3id FROM band_downloads, band_mp3
           WHERE band_downloads.userid = 9 AND
           band_mp3.id = band_downloads.mp3id ORDER BY band_downloads.id DESC;
    
    Во втором случае Вы можете получить две идентичных строки в наборе результатов (потому что значения в скрытом столбце id могут отличаться).

    Отметьте, что это происходит только для запросов, которые не имеют столбцов ORDER BY в результате.

  • Если Вы выполняете PROCEDURE на запросе, который возвращает пустой набор, в некоторых случаях PROCEDURE не преобразовывает столбцы.
  • Создание таблицы типа MERGE не проверяет, являются ли основные таблицы совместимыми типами.
  • Если Вы используете ALTER TABLE , чтобы добавить UNIQUE индекс к таблице, используемой в таблице MERGE и затем добавляете нормальный индекс к таблице MERGE, ключевой порядок отличается для таблиц, если были старые, не-UNIQUE ключи в таблице. Это потому, что ALTER TABLE помещает индексы UNIQUE прежде нормальных, чтобы быть в состоянии обнаружить дубликаты ключа как можно раньше.

Поиск

 

Найди своих коллег!

Вы можете направить письмо администратору этой странички, Алексею Паутову. mailto:alexey.v.pautov@mail.ru