'performance_schema.session_variables'테이블이 존재하지 않습니다
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 Upgrade 명령을 실행하는 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
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
충분하지 않아서
이 질문을 참조하십시오 : 'performance_schema.session_variables'테이블 이 존재하지 않습니다
그것에 따르면 :
- cmd를여십시오
cd [installation_path]\eds-binaries\dbserver\mysql5711x86x160420141510\bin
mysql_upgrade -u root -p --force
참고 URL : https://stackoverflow.com/questions/31967527/table-performance-schema-session-variables-doesnt-exist
'Programing' 카테고리의 다른 글
Webpack으로 디렉토리를 빌드하기 위해 정적 파일을 복사하는 방법은 무엇입니까? (0) | 2020.03.18 |
---|---|
Linux에서 자동으로 명령 반복 (0) | 2020.03.18 |
안드로이드의 목적은 무엇입니까 (0) | 2020.03.18 |
이진 트리의 응용 프로그램은 무엇입니까? (0) | 2020.03.18 |
OS X에서 NODE_ENV를 생산 / 개발로 설정하는 방법 (0) | 2020.03.18 |