MySQL을 5.7.8-rc로 업그레이드하고 서버에 로그인 한 후 오류가 발생했습니다.
Table 'performance_schema.session_variables' doesn't exist
이에 대한 해결책을 찾을 수 없습니다. 도울 수 있니 ?
답변
mysql_upgrade도 저에게 효과적이었습니다.
# mysql_upgrade -u root -p --force
# systemctl restart mysqld
감사합니다.
답변
@robregonm 제안 명령을 실행 한 후 mysql 서버에 로그온 할 수있었습니다.
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
일 수있는 의 손상입니다 .
- 유기적 손상 (카붐, 엔진 버그, 커널 드라이버 문제 등)
- mysql 패치 중 손상 (특히 주요 버전 업그레이드의 경우 mysql 패치 중에이 문제가 발생하지 않은 것은 아닙니다)
- 간단한 “drop database performance_schema”는 분명히이 문제를 야기하며 손상된 것처럼 동일한 증상을 나타냅니다.
이 문제는 패치 이전에도 데이터베이스에 있었을 수도 있지만 MySQL 5.7.8에서 발생한 것은 특히 플래그 show_compatibility_56
가 기본값 ON
을 기본값으로 설정하지 않고OFF
입니다. 이 플래그는 다양한 MySQL 버전에서 변수 (세션 및 전역)를 설정하고 읽는 쿼리에서 엔진이 작동하는 방식을 제어합니다.
MySQL 5.7+는 on 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
나는 같은 문제가 있었고 작동합니다!
답변
sixty4bit 질문으로, mysql 루트 사용자가 잘못 구성된 것 같으면 mysql 공식 소스에서 구성 프로그램 확장을 설치하십시오.
https://dev.mysql.com/downloads/repo/apt/
새로운 루트 사용자 암호를 설정하는 데 도움이됩니다.
저장소 (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