Другой. Похоже, ваше обновление не удалось. Возможно, вы захотите повторить процесс обновления (или) переустановить 5.7.8-rcверсию и восстановить из БД полную резервную копию.
Рахул
2
Вы бежали, mysql_upgradeчтобы убедиться, что были внесены какие-либо изменения в основные таблицы / базы данных?
Марк Б,
да, я сделал mysql_upgrade, я даю ему последнюю попытку и переустановить его снова. Если это не сработает, я вернусь к версии 5.6
Taz
28
У меня возникла та же проблема, для ее решения я запускаю mysql_upgrade -u root -p --force, а затем перезагружаю сервер БД.
robregonm
Если команда mysql_upgrade не работает, то таблица mysql.performance_schema могла быть повреждена. У нас была эта проблема. Чтобы устранить проблему, мы удалили сервер базы данных с помощью команды: apt-get purge mariadb-client-10.1 mariadb-common mariadb-server-10.1. Это удалило все двоичные файлы базы данных, конфигурацию и файл данных. Затем мы переустановили сервер базы данных и импортировали обратно базы данных. После этого сервер базы данных запустился без проблем
Мне нужно было перезапустить mysqld ( mysql.server restartтак как я использую установку homebrew на os x), так что это было полезно. В противном случае я получил ошибку о неправильной структуре session_variables.
Джеффри Уайзман
Идентичное поведение с Homebrew на OS X 10.10.5 (Yosemite). Обновление также устраняет сбой в Sequel Pro 1.1 (сборка 4499) при попытке загрузить базу данных.
Уильям Туррелл
4
Native table 'performance_schema'.'session_variables' has the wrong structure
Стивен
8
Если вы используете, brew servicesвы можете перезагрузить сервер с помощью brew services restart mysql.
Фредерик Каммер
1
Это не работает для меня, правильный ответ дает viq. необходимо только включить шоу совместимость.
kato2
482
Я смог войти на сервер mysql после запуска команды @robregonm:
Это сработало хорошо. Спасибо. Я хочу знать, в чем причина.
Diguage
2
Я получаю, Access denied for user 'root'@'localhost' (using password: YES) while connecting to the MySQL serverхотя я использую правильный пароль root. Любая помощь?? : - /
sixty4bit
4
@ sixty4bit попробуйте удалить -p
Майк Меллор
1
@NevilleNazerane Я не знаком с простым PHP, но вы должны быть в состоянии найти, где MySQL устанавливается, а затем просто откройте приглашение CDM и измените каталог в этом месте. Теперь вы должны быть в состоянии выполнить команду.
Михай Каракостей
4
@diguage Причина в том, что в обновлении версии MySQL появились несовместимые с версией схемы для внутренних метаданных. Для меня я обновляю MySQL 5.6 до MySQL 5.7 на Mac, используя Homebrew, и каталог данных MySQL не изменился, поэтому новая версия MySQL считывала старые внутренние метаданные, но не знаю, что делать - эта ошибка, которую мы видели здесь, манифест этой проблемы. После mysql_upgradeи перезагрузки все заработало. См. Dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.html
Деви
110
mysql -u app -p
mysql>set@@global.show_compatibility_56=ON;
Это отлично сработало для меня! И мне не нужно было перезапускать сервер mysql, который был бы таким громоздким
anu.agg
3
Я извиняюсь, это несколько чрезмерное решение: например, использование базуки для отстрела мухи. Этот переключатель совместимости имеет гораздо больше эффектов, возможно, вам не все из них нужны.
Tuncay Göncüoğlu
@Tuncay Göncüoğlu, каковы некоторые из этих побочных эффектов?
Кацмополит
@katzmopolitan Читайте здесь: dev.mysql.com/doc/refman/5.7/en/… . Изменения в основном связаны с обработкой INFORMATION_SCHEMA (безопасность и т. Д.), Но есть и другие.
Tuncay Göncüoğlu
Это сработало и для меня. Сообщение об ошибке, которое я получил, было от mysqldump. Как только я внес предложенное изменение, mysqldump сработал. Получив дамп, я просто изменил show_compatibility_56 на OFF.
Брайан
23
Поскольку ни один из ответов, приведенных выше, на самом деле не объясняет, что произошло, я решил присоединиться к этой проблеме и рассказать о ней подробнее.
Да, решение состоит в том, чтобы выполнить команду обновления 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вместо включения information_schema, этот флаг был введен, как и ONв первых выпусках, чтобы уменьшить радиус взрыва этого изменения и дать пользователям знать об этом изменении и привыкнуть к нему.
ОК, но почему не удается установить соединение? Поскольку в зависимости от используемого вами драйвера (и его конфигурации), он может в конечном итоге запускать команды для каждого нового соединения, инициированного с базой данных (например show variables, например). Поскольку одна из этих команд может попытаться получить доступ к поврежденному performance_schema, все соединение прерывается до того, как будет полностью инициировано.
Итак, в итоге, вы могли (сейчас это невозможно сказать) performance_schemaлибо пропустили, либо испортили до исправления. Затем патч к 5.7.8 заставил движок считывать ваши переменные performance_schema(вместо того information_schema, откуда он их читал из-за поворота флага ON). Так как performance_schemaбыл поврежден, соединения не работают.
Выполнение обновления MySQL - лучший подход, несмотря на простои. Включение флага - это один из вариантов, но он имеет свой собственный набор последствий, как уже указывалось в этом потоке.
Оба должны работать, но взвесить последствия и знать свой выбор :)
Это работает! Только systemctl restart mysqldне сработало.
ниндзя
затем используйтеsystemctl restart mysql
BitDEVil2K16
1
В качестве шестидесятибитного вопроса, если ваш root-пользователь mysql выглядит неправильно настроенным, попробуйте установить расширение конфигуратора из официального источника mysql:
Для моей системы проблема заключалась в том, что у меня все еще был установлен Mysql 5.6, и поэтому вызывался файл mysql_upgrade.exe из этой установки вместо того, который использовался для 5.7. Перейдите C:\Program Files\MySQL\MySQL Server 5.7\binи запустите.\mysql_upgrade.exe -u root
5.7.8-rc
версию и восстановить из БД полную резервную копию.mysql_upgrade
чтобы убедиться, что были внесены какие-либо изменения в основные таблицы / базы данных?mysql_upgrade
, я даю ему последнюю попытку и переустановить его снова. Если это не сработает, я вернусь к версии 5.6mysql_upgrade -u root -p --force
, а затем перезагружаю сервер БД.Ответы:
Mysql_upgrade работал для меня также:
С уважением, MSz.
источник
mysql.server restart
так как я использую установку homebrew на os x), так что это было полезно. В противном случае я получил ошибку о неправильной структуре session_variables.Native table 'performance_schema'.'session_variables' has the wrong structure
brew services
вы можете перезагрузить сервер с помощьюbrew services restart mysql
.Я смог войти на сервер mysql после запуска команды @robregonm:
Требуется перезагрузка сервера MySQL.
источник
Access denied for user 'root'@'localhost' (using password: YES) while connecting to the MySQL server
хотя я использую правильный пароль root. Любая помощь?? : - /mysql_upgrade
и перезагрузки все заработало. См. Dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.htmlсогласно http://bugs.mysql.com/bug.php?id=78159 работал для меня.
источник
Поскольку ни один из ответов, приведенных выше, на самом деле не объясняет, что произошло, я решил присоединиться к этой проблеме и рассказать о ней подробнее.
Да, решение состоит в том, чтобы выполнить команду обновления MySQL следующим образом:,
mysql_upgrade -u root -p --force
но что случилось?Основной причиной этой проблемы является повреждение
performance_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 - лучший подход, несмотря на простои. Включение флага - это один из вариантов, но он имеет свой собственный набор последствий, как уже указывалось в этом потоке.
Оба должны работать, но взвесить последствия и знать свой выбор :)
источник
Выполните следующие шаги без
-p
:mysql_upgrade -u root
systemctl restart mysqld
У меня была такая же проблема, и она работает!
источник
systemctl restart mysqld
не сработало.systemctl restart mysql
В качестве шестидесятибитного вопроса, если ваш root-пользователь mysql выглядит неправильно настроенным, попробуйте установить расширение конфигуратора из официального источника mysql:
https://dev.mysql.com/downloads/repo/apt/
Это поможет вам установить новый пароль пользователя root.
Обязательно обновите свой репозиторий (debian / ubuntu):
источник
Для моей системы проблема заключалась в том, что у меня все еще был установлен 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
команды вы получаете эту ошибку:просто добавьте
sudo
перед командой. Это сработало для меня, и я решил свою проблему. Итак, это:sudo mysql_upgrade -u root -p --force
:)источник
иногда
mysql_upgrade -u root -p --force
не достаточно,пожалуйста, обратитесь к этому вопросу: Таблица «performance_schema.session_variables» не существует
в соответствии с этим:
cd [installation_path]\eds-binaries\dbserver\mysql5711x86x160420141510\bin
mysql_upgrade -u root -p --force
источник