9 ответов:
mysql_upgrade работал и для меня:
# mysql_upgrade -u root -p --force # systemctl restart mysqldС уважением, МСЗ.
я смог войти на сервер mysql после выполнения команды @robregonm предложил:
mysql_upgrade -u root -p --forceтребуется перезапуск сервера MySQL.
mysql -u app -p mysql> set @@global.show_compatibility_56=ON;согласно http://bugs.mysql.com/bug.php?id=78159 работал на меня.
поскольку ни один из ответов выше на самом деле не объясняет, что произошло, я решил вмешаться и привести еще несколько деталей к этой проблеме.
Да, решение состоит в том, чтобы запустить команду обновления MySQL следующим образом:
mysql_upgrade -u root -p --force, а что случилось?основной причиной этой проблемы является повреждение
performance_schema, что может быть вызвано:
- органическая коррупция (Тома идут kaboom, ошибка двигателя, проблема драйвера ядра и т. д.)
- коррупция во время исправления mysql (это не неслыханно, чтобы это произошло во время исправления mysql, особенно для основных обновлений версии)
- простой "drop database performance_schema", очевидно, вызовет эту проблему, и он будет представлять те же симптомы, как если бы он был поврежден
эта проблема, возможно, присутствовала в вашей базе данных еще до патча, но то, что произошло на MySQL 5.7.8, в частности, это флаг
show_compatibility_56изменить это значение по умолчанию приONпо умолчаниюOFF. Этот флаг управляет тем, как движок ведет себя на запросах для установки и чтения переменных (сеансовых и глобальных) на различных версиях MySQL.потому что MySQL 5.7+ начал читать и хранить эти переменные на
performance_schemaвместо oninformation_schemaэтот флаг был введен в качествеONдля первых релизов, чтобы уменьшить радиус взрыва этого изменения и дать пользователям знать об изменении и привыкнуть к нему.хорошо, но почему соединение потерпеть неудачу? Поскольку в зависимости от используемого драйвера (и его конфигурации) он может запускать команды для каждого нового подключения, инициированного к базе данных (например,
show variables, например). Потому что одна из этих команд может попытаться получить доступ к поврежденномуperformance_schema, все соединение прерывается до полной инициализации.Итак, вкратце, вы мая (сейчас невозможно сказать) были
performance_schemaлибо отсутствует, либо поврежден перед исправлением. Затем Патч до 5.7.8 заставил двигатель читать ваши переменные изperformance_schema(вместоinformation_schema, где он читал его из-за того, что флаг был повернутON). Так какperformance_schemaповрежден, соединения не работают.запуск обновления MySQL является лучшим подходом, несмотря на время простоя. Включение флага - это один из вариантов, но он поставляется с собственным набором последствий, как уже указывалось в этой теме.
оба должны работать, но взвешивать последствия и знать ваш выбор :)
выполните следующие действия без
-p:
mysql_upgrade -u rootsystemctl restart mysqldу меня была та же проблема и это работает!
как вопрос sixty4bit, если ваш пользователь MySQL root выглядит неправильно настроенным, попробуйте установить расширение конфигуратора из официального источника mysql:
https://dev.mysql.com/downloads/repo/apt/
Это поможет вам установить новый пароль пользователя root.
обязательно обновите свой репозиторий (debian / ubuntu):
apt-get update
для моей системы проблема заключалась в том, что у меня все еще был установлен Mysql 5.6 и поэтому mysql_upgrade.exe из этой установки была вызвана для 5.7. Перейдите к
C:\Program Files\MySQL\MySQL Server 5.7\binи работать.\mysql_upgrade.exe -u root
если при использовании
mysql_upgrade -u root -p --forceкоманда вы получаете эту ошибку:Could not create the upgrade info file '/var/lib/mysql/mysql_upgrade_info' in the MySQL Servers datadir, errno: 13просто добавить
sudoперед командой. Это сработало для меня, и я решил свою проблему. Итак, это:sudo mysql_upgrade -u root -p --force:)
иногда
mysql_upgrade -u root -p --forceна самом деле недостаточно,пожалуйста, обратитесь к этому вопросу : стол '.session_variables ' не существует
согласно ему:
- открыть cmd
cd [installation_path]\eds-binaries\dbserver\mysql5711x86x160420141510\binmysql_upgrade -u root -p --force
Comments