Outro. Parece que sua atualização não foi bem-sucedida. Você pode considerar fazer o processo de atualização novamente (ou) reinstalar a 5.7.8-rcversão e restaurar o backup completo do banco de dados.
Rahul
2
você executou mysql_upgradepara garantir que alguma alteração nas tabelas principais / dbs foi feita?
Marc B
sim, eu fiz mysql_upgrade, eu dou a última tentativa e reinstalá-lo novamente. Se ele não vai funcionar eu vou fazer o downgrade para 5,6 versão
Taz
28
Tive o mesmo problema: para resolvê-lo, eu corro mysql_upgrade -u root -p --forcee reiniciei o servidor de banco de dados.
robregonm
Se o comando mysql_upgrade não funcionar, a tabela mysql.performance_schema pode ter sido corrompida. Nós tivemos esse problema. Para corrigir o problema, removemos o servidor de banco de dados usando o comando: apt-get purge mariadb-client-10.1 mariadb-common mariadb-server-10.1. Isso removeu todos os arquivos binários, de configuração e de dados do banco de dados. Em seguida, reinstalamos o servidor de banco de dados e importamos de volta os bancos de dados. Depois disso, o servidor de banco de dados foi executado sem problemas #
Eu precisava reiniciar o mysqld ( mysql.server restartjá que estou usando uma instalação homebrew no os x), então isso foi útil. Caso contrário, recebi um erro sobre as session_variables terem a estrutura errada.
Geoffrey Wiseman
Comportamento idêntico com o Homebrew no OS X 10.10.5 (Yosemite). A atualização também corrige uma falha no Sequel Pro 1.1 (build 4499) ao tentar carregar o banco de dados.
William Turrell
4
Native table 'performance_schema'.'session_variables' has the wrong structure
31516 Stephen
8
Se você estiver usando, brew servicespoderá reiniciar o servidor com brew services restart mysql.
Frederik Kammer 22/02
1
Isso não funciona para mim, a resposta correta é dada pelo viq. somente é necessário para ativar a compatibilidade do programa.
kato2
482
Consegui fazer logon no servidor mysql depois de executar o comando @robregonm sugerido:
Isso funcionou bem. Obrigado. Quero saber qual é o motivo.
Diguage
2
Estou ficando Access denied for user 'root'@'localhost' (using password: YES) while connecting to the MySQL servermesmo usando a senha de root correta. Qualquer ajuda?? : - /
sixty4bit 23/03
4
@ sixty4bit tente remover o p
Mike Mellor
1
@NevilleNazerane Não estou familiarizado com o php fácil, mas você deve ser capaz de localizar onde o mysql é instalado e, em seguida, basta abrir um prompt do cdm e alterar o diretório para esse local. Agora você deve poder executar o comando.
Mihai Caracostea
4
@diguage O motivo é que a atualização da versão do MySQL introduziu esquemas incompatíveis de versão para metadados internos. Para mim, estou atualizando o MySQL 5.6 para o MySQL 5.7 em um Mac usando o Homebrew e o diretório de dados do MySQL não foi alterado, portanto a nova versão do MySQL estava lendo os metadados internos antigos, mas não sei o que fazer - esse erro que vimos aqui é um manifesto dessa questão. Depois mysql_upgradee um reinício, tudo funcionou. Veja: dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.html
Devy
110
mysql -u app -p
mysql>set@@global.show_compatibility_56=ON;
Isso funcionou perfeitamente para mim! E eu não ter de reiniciar o servidor mysql que teria sido tão complicado
anu.agg
3
Sinto muito, esta é uma solução um pouco grande demais: como usar uma bazuca para disparar uma mosca. Essa opção de compatibilidade tem muito mais efeitos, talvez você não queira todos eles.
Tuncay Göncüoğlu
@Tuncay Göncüoğlu quais são alguns desses efeitos colaterais?
katzmopolitan
@katzmopolitan Leia aqui: dev.mysql.com/doc/refman/5.7/en/… . As alterações estão principalmente relacionadas ao manuseio de INFORMAÇÕES_SCHEMA (segurança, etc.), mas há mais.
Tuncay Göncüoğlu 7/11
Isso funcionou para mim também. A mensagem de erro que recebi foi do mysqldump. Uma vez que eu fiz a mudança sugerida, o mysqldump funcionou. Depois de fazer o despejo, mudei o show_compatibility_56 de volta para OFF.
Bryan
23
Como nenhuma das respostas acima realmente explica o que aconteceu, decidi entrar em cena e trazer mais alguns detalhes para esse problema.
Sim, a solução é executar o comando Upgrade do MySQL, da seguinte maneira: mysql_upgrade -u root -p --force mas o que aconteceu?
A causa raiz desse problema é a corrupção de performance_schema, que pode ser causada por:
Corrupção orgânica (volumes que vão do kaboom, bug do mecanismo, problema do driver do kernel etc.)
Corrupção durante o patch do mysql (não é inédito que isso ocorra durante um patch do mysql, especialmente para atualizações de versão principais)
Um simples "drop data performance_schema" obviamente causará esse problema e apresentará os mesmos sintomas como se estivesse corrompido
Esse problema pode estar presente no seu banco de dados mesmo antes do patch, mas o que aconteceu no MySQL 5.7.8 especificamente é que o sinalizador show_compatibility_56alterou seu valor padrão de ser ativado ONpor padrão paraOFF . Este sinalizador controla como o mecanismo se comporta nas consultas para definir e ler variáveis (sessão e global) em várias versões do MySQL.
Como o MySQL 5.7+ começou a ler e armazenar essas variáveis ativadas em performance_schemavez de ativadas information_schema, essa flag foi introduzida ONnos primeiros lançamentos para reduzir o raio de explosão dessa alteração e permitir que os usuários soubessem da mudança e se acostumassem.
OK, mas por que a conexão falha? Como, dependendo do driver que você está usando (e de sua configuração), ele pode acabar executando comandos para cada nova conexão iniciada no banco de dados (como show variables, por exemplo). Como um desses comandos pode tentar acessar um arquivo corrompidoperformance_schema , toda a conexão é interrompida antes de ser totalmente iniciada.
Portanto, em resumo, você pode (é impossível dizer agora) ter performance_schemafaltado ou corrompido antes de aplicar o patch. O patch para 5.7.8 forçou o mecanismo a ler suas variáveis performance_schema(em vez de de information_schemaonde estava lendo por causa da ativação do sinalizador ON). Desde que performance_schemafoi corrompido, as conexões estão falhando.
Executar a atualização do MySQL é a melhor abordagem, apesar do tempo de inatividade. Ativar a bandeira é uma opção, mas ela vem com seu próprio conjunto de implicações, como já foi apontado neste tópico.
Ambos devem funcionar, mas ponderem as consequências e conheçam suas escolhas :)
Isso funciona! Só systemctl restart mysqldnão funcionou.
Ninja
então usesystemctl restart mysql
BitDEVil2K16 02/02/19
1
Como uma pergunta de sessenta e quatro bits, se o usuário root do mysql parecer estar configurado incorretamente, tente instalar a extensão do configurador da fonte oficial do mysql:
Para o meu sistema, o problema acabou sendo que eu ainda tinha o Mysql 5.6 instalado e, portanto, o mysql_upgrade.exe daquela instalação estava sendo chamado em vez do 5.7. Navegue C:\Program Files\MySQL\MySQL Server 5.7\bine execute.\mysql_upgrade.exe -u root
5.7.8-rc
versão e restaurar o backup completo do banco de dados.mysql_upgrade
para garantir que alguma alteração nas tabelas principais / dbs foi feita?mysql_upgrade
, eu dou a última tentativa e reinstalá-lo novamente. Se ele não vai funcionar eu vou fazer o downgrade para 5,6 versãomysql_upgrade -u root -p --force
e reiniciei o servidor de banco de dados.Respostas:
O mysql_upgrade também funcionou para mim:
Atenciosamente, MSz.
fonte
mysql.server restart
já que estou usando uma instalação homebrew no os x), então isso foi útil. Caso contrário, recebi um erro sobre as session_variables terem a estrutura errada.Native table 'performance_schema'.'session_variables' has the wrong structure
brew services
poderá reiniciar o servidor combrew services restart mysql
.Consegui fazer logon no servidor mysql depois de executar o comando @robregonm sugerido:
É necessário reiniciar o servidor MySQL.
fonte
Access denied for user 'root'@'localhost' (using password: YES) while connecting to the MySQL server
mesmo usando a senha de root correta. Qualquer ajuda?? : - /mysql_upgrade
e um reinício, tudo funcionou. Veja: dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.htmlconforme http://bugs.mysql.com/bug.php?id=78159 funcionou para mim.
fonte
Como nenhuma das respostas acima realmente explica o que aconteceu, decidi entrar em cena e trazer mais alguns detalhes para esse problema.
Sim, a solução é executar o comando Upgrade do MySQL, da seguinte maneira:
mysql_upgrade -u root -p --force
mas o que aconteceu?A causa raiz desse problema é a corrupção de
performance_schema
, que pode ser causada por:Esse problema pode estar presente no seu banco de dados mesmo antes do patch, mas o que aconteceu no MySQL 5.7.8 especificamente é que o sinalizador
show_compatibility_56
alterou seu valor padrão de ser ativadoON
por padrão paraOFF
. Este sinalizador controla como o mecanismo se comporta nas consultas para definir e ler variáveis (sessão e global) em várias versões do MySQL.Como o MySQL 5.7+ começou a ler e armazenar essas variáveis ativadas em
performance_schema
vez de ativadasinformation_schema
, essa flag foi introduzidaON
nos primeiros lançamentos para reduzir o raio de explosão dessa alteração e permitir que os usuários soubessem da mudança e se acostumassem.OK, mas por que a conexão falha? Como, dependendo do driver que você está usando (e de sua configuração), ele pode acabar executando comandos para cada nova conexão iniciada no banco de dados (como
show variables
, por exemplo). Como um desses comandos pode tentar acessar um arquivo corrompidoperformance_schema
, toda a conexão é interrompida antes de ser totalmente iniciada.Portanto, em resumo, você pode (é impossível dizer agora) ter
performance_schema
faltado ou corrompido antes de aplicar o patch. O patch para 5.7.8 forçou o mecanismo a ler suas variáveisperformance_schema
(em vez de deinformation_schema
onde estava lendo por causa da ativação do sinalizadorON
). Desde queperformance_schema
foi corrompido, as conexões estão falhando.Executar a atualização do MySQL é a melhor abordagem, apesar do tempo de inatividade. Ativar a bandeira é uma opção, mas ela vem com seu próprio conjunto de implicações, como já foi apontado neste tópico.
Ambos devem funcionar, mas ponderem as consequências e conheçam suas escolhas :)
fonte
Siga estas etapas sem
-p
:mysql_upgrade -u root
systemctl restart mysqld
Eu tive o mesmo problema e funciona!
fonte
systemctl restart mysqld
não funcionou.systemctl restart mysql
Como uma pergunta de sessenta e quatro bits, se o usuário root do mysql parecer estar configurado incorretamente, tente instalar a extensão do configurador da fonte oficial do mysql:
https://dev.mysql.com/downloads/repo/apt/
Isso ajudará você a configurar uma nova senha de usuário root.
Certifique-se de atualizar seu repositório (debian / ubuntu):
fonte
Para o meu sistema, o problema acabou sendo que eu ainda tinha o Mysql 5.6 instalado e, portanto, o mysql_upgrade.exe daquela instalação estava sendo chamado em vez do 5.7. Navegue
C:\Program Files\MySQL\MySQL Server 5.7\bin
e execute.\mysql_upgrade.exe -u root
fonte
Se, ao usar o
mysql_upgrade -u root -p --force
comando, você receber este erro:basta adicionar o
sudo
antes do comando. Isso funcionou para mim e resolvi meu problema. Então é:sudo mysql_upgrade -u root -p --force
:)fonte
as vezes
mysql_upgrade -u root -p --force
não é suficiente,por favor consulte esta pergunta: tabela 'performance_schema.session_variables' não existe
de acordo com ele:
cd [installation_path]\eds-binaries\dbserver\mysql5711x86x160420141510\bin
mysql_upgrade -u root -p --force
fonte