Оскільки жодна з вищезгаданих відповідей насправді не пояснює, що сталося, я вирішив задзвонити та донести ще деякі деталі до цього питання.
Так, рішення полягає у виконанні команди MySQL Upgrade наступним чином: mysql_upgrade -u root -p --force але що сталося?
Першопричиною цього питання є корупція performance_schema, яку можуть спричинити:
- Органічна корупція (томи, які стають кабумом, помилка двигуна, проблема з драйвером ядра тощо)
- Пошкодження під час mysql Patch (не чутно, щоб це сталося під час роботи з патчем mysql, спеціально для великих оновлень версій)
- Проста "drop_dutform_schema", очевидно, спричинить цю проблему, і вона проявить ті самі симптоми, як ніби вона була пошкоджена
Ця проблема, можливо, була присутня у вашій базі даних ще до виправлення, але те, що трапилося на MySQL 5.7.8, зокрема, полягає в тому, що прапор show_compatibility_56змінив своє значення за замовчуванням з перетвореного ONза замовчуванням наOFF . Цей прапор керує тим, як двигун веде себе за запитами щодо встановлення та зчитування змінних (сесійних та глобальних) на різних версіях MySQL.
Оскільки MySQL 5.7+ почав читати та зберігати ці змінні, performance_schemaа не увімкнути information_schema, цей прапор було введено як ONдля перших випусків, щоб зменшити радіус вибуху цієї зміни та дати користувачам інформацію про зміни та звикнути до неї.
Гаразд, але чому з’єднання не працює? Оскільки залежно від драйвера, який ви використовуєте (та його конфігурації), він може закінчити виконання команд для кожного нового з'єднання, ініційованого до бази даних (наприклад show variables, наприклад). Тому що одна з цих команд може спробувати отримати доступ зіпсованимperformance_schema , все з'єднання припиняється, перш ніж повністю ініціюватися.
Отже, підсумовуючи це, ви, можливо, (неможливо сказати зараз), performance_schemaперед тим, як виправити помилку, були або відсутні, або зіпсовані. Потім виправлення до 5.7.8 змусило двигун зчитувати ваші змінні performance_schema(замість того information_schema, звідки він його читав через поворот прапора ON). Оскільки performance_schemaпошкоджено, з'єднання виходять з ладу.
Запуск оновлення MySQL є найкращим підходом, незважаючи на час простою. Увімкнення прапора є одним із варіантів, але він має власний набір наслідків, як це вже було зазначено на цій темі.
Обоє повинні працювати, але зважте наслідки і знайте свій вибір :)
5.7.8-rcверсії та відновлення з повної резервної копії БД.