Skip to content


Ошибка "Lost connection to MySQL server during query" после оператора GRANT

После переезда MySQL на версию 5.6.10 после любого GRANT-а вылазила странная ошибка:

  1. mysql> GRANT ALL ON avzdb.* TO 'avz'@'10.10.10.10.' IDENTIFIED BY 'Pgdfk3jh';
  2. ERROR 2013 (HY000): Lost connection to MySQL server during query

В error-логе вылазило такое:

  1. 2013-02-26 16:57:07 10343 [ERROR] Incorrect definition of table mysql.proc: expected column 'comment' at position 15 to have type text, found type char(64).
  2. 13:56:11 UTC - mysqld got signal 11 ;
  3. This could be because you hit a bug. It is also possible that this binary
  4. or one of the libraries it was linked against is corrupt, improperly built,
  5. or misconfigured. This error can also be caused by malfunctioning hardware.
  6. We will try our best to scrape up some info that will hopefully help
  7. diagnose the problem, but since we have already crashed,
  8. something is definitely wrong and this may fail.

Тут стоит упомянуть, что все базы от версии 5.5 (включая системную базу с именем mysql) были сдамплены на старом сервере с версией 5.5 и влиты на новом с версией 5.6. Поскольку тут нам кагбе намекают на то, что в таблице mysql.proc изменилась структура, я решил запустить утилиту mysql_upgrade, которая вывалила на консоль такое:

  1. mysql.columns_priv                                 OK
  2. mysql.db                                           OK
  3. mysql.event                                        OK
  4. mysql.func                                         OK
  5. mysql.general_log                                  OK
  6. mysql.help_category                                OK
  7. mysql.help_keyword                                 OK
  8. mysql.help_relation                                OK
  9. mysql.help_topic                                   OK
  10. mysql.host                                         OK
  11. mysql.innodb_index_stats                           OK
  12. mysql.innodb_table_stats                           OK
  13. mysql.ndb_binlog_index                             OK
  14. mysql.plugin                                       OK
  15. mysql.proc                                         OK
  16. mysql.procs_priv                                   OK
  17. mysql.proxies_priv                                 OK
  18. mysql.servers                                      OK
  19. mysql.slave_master_info                            OK
  20. mysql.slave_relay_log_info                         OK
  21. mysql.slave_worker_info                            OK
  22. mysql.slow_log                                     OK
  23. mysql.tables_priv                                  OK
  24. mysql.time_zone                                    OK
  25. mysql.time_zone_leap_second                        OK
  26. mysql.time_zone_name                               OK
  27. mysql.time_zone_transition                         OK
  28. mysql.time_zone_transition_type                    OK
  29. mysql.user                                         OK
  30. Running 'mysql_fix_privilege_tables'...
  31. Warning: Using a password on the command line interface can be insecure.
  32. OK

После чего оператор GRANT выполнился нормально. Вот такое вот простое решение проблемы.

.

Размещено в категории Howto. Теги: .

Комментариев: 1

Чтобы быть всегда в курсе здесь происходящего, Вы можете подписаться на RSS feed для комментариев на эту заметку.

  1. mysql_upgrade вообще-то всегда рекомендовалось запускать после обновления mysql. Так что тут ничего специфичного именно для версии 5.6, пожалуй, нету.

Some HTML is OK

(required)

(required, but never shared)

, или ответить через trackback.

Страница 1 из 11