MySQL 8.0 이 지나 간 구덩이 에 대해 자세히 알 아 보기
첫 번 째 질문:Navicat 가 데이터베이스 에 연결 되 지 않 습 니 다.
설 치 된 my sql 은 localhost:3306 입 니 다.모든 기본 값 을 설정 합 니 다.설치 후 Navicat 12 새 연결 을 열 면 오류 가 발생 합 니 다.
authentication plugin 'caching_sha2_password'
인증 플러그 인 을 불 러 올 수 없습니다.
공식 문 서 를 찾 아 봤 습 니 다.
원래 MySQL 8.0 에서 cachingsha2_password 가 my sql 을 대체 하 였 습 니 다.native_password 는 기본 인증 플러그 인 이 되 었 습 니 다.공식 적 으로 제 시 된 해결 방안 은 다음 과 같 습 니 다.
1.서버 를 다시 설정 하여 이전 기본 인증 플러그 인(my sqlnative_password)。
[mysqld]
default_authentication_plugin=mysql_native_password
이 설정 은 8.0 이전 클 라 이언 트 가 8.0 서버 에 연결 할 수 있 도록 합 니 다.그러나 이 설정 은 장기 적 이거 나 영구적 인 해결 방안 이 아 닌 임시 설정 으로 간주 되 어야 합 니 다.유효한 설정 으로 만 든 새 계 정 이 제공 하 는 개 선 된 인증 보안 caching 을 포기 할 수 있 기 때 문 입 니 다.sha2_password。2.루트 관리 계 정의 인증 방식 을 my sql 로 변경 합 니 다.native_password。
새 MySQL 8.0 설치 에 대해 서 는 데이터 디 렉 터 리 를 초기 화 할 때 계 정'root'@'localhost'를 만 들 고 이 계 정 은 기본적으로 caching 을 사용 합 니 다.sha2_password。서버 루트 에 연결 하고 ALTER USER 를 사용 하면 다음 과 같이 계 정 인증 플러그 인과 비밀 번 호 를 변경 할 수 있 습 니 다.
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'password';
이로써 MySQL 8.0 의 기본 인증 변경 문 제 를 해결 했다.두 번 째 질문:Caused by:java.sql.SQLexception:Unknown initial character set index'255'...
데이터 베 이 스 를 업데이트 한 후에 로 컬 에서 자바 프로젝트 를 시 작 했 습 니 다.데이터 베 이 스 를 연결 하여 테스트 프로그램 에서 직접 이상 을 던 졌 습 니 다.공식 문 서 를 찾 아 보 았 습 니 다6.5.1.3 Caching SHA-2 Pluggable Authentication원래 8.0.1 버 전 으로 유 니 코드 문자 집합 지원 에서 몇 가지 중요 한 변경 을 했 습 니 다.기본 문자 집합 은 latin 1 에서 utf8mb 4 로 변경 되 었 습 니 다.이 시스템 은 기본 collationserver 와 collocationdatabase 시스템 변 수 는 latin 1swedish_ci utf8mb 40900_ai_ci。
해결 방법:이 모든 변경 사항 은 새 버 전의 MySQL 커 넥 터 자바 에서 처리 되 었 습 니 다.MySQL 을 설정 할 필요 가 없습니다.그래서 MYSQL 버 전 만 업그레이드 하면 되 고 5.1.6 을 5.1.44 로 변경 하면 문제 가 완벽 하 게 해결 된다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
문제 3 설치 완료 후 데이터베이스 show databases 에 들 어 갑 니 다.권한 변경 시도 오류ERROR 1449 (HY000): The user specified as a definer ( Changes in MySQL 8.0.1 (2017-04-10, Development Milestone) ) does not exist
Table 'mysql.role_edges' doesn't exist
해결 방법
mysql_upgrade -u root -p;
문제 4:클 라 이언 트 가 데이터 베 이 스 를 성공 적 으로 연결 한 후에 프로젝트 의 Pdo 연결 my sql 이 또 잘못 되 었 습 니 다.Next PDOException: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client [caching_sha2_password] in /vendor/yiisoft/yii2/db/Connection.php:687
이 오 류 는 my sql 에서 기본적으로 caching 을 사용 할 수 있 습 니 다.sha2_password 는 my sql 이 아 닌 기본 인증 플러그 인 입 니 다.native_password,하지만 클 라 이언 트 는 이 플러그 인 으로 인 한 것 을 잠시 지원 하지 않 습 니 다.공식 문서 설명
In MySQL 8.0, caching_sha2_password is the default authentication plugin rather than mysql_native_password. For information about the implications of this change for server operation and compatibility of the server with clients and connectors, see caching_sha2_password as the Preferred Authentication Plugin.
MySQL 8.0 에서 cachingsha2_password 는 my sql 이 아 닌 기본 인증 플러그 인 입 니 다.native_password。이 변경 사항 이 서버 작업 에 미 치 는 영향 및 서버 와 클 라 이언 트,커 넥 터 의 호환성 에 대한 정 보 는 caching 을 참조 하 십시오.sha2_password 는 인증 플러그 인 을 우선 선택 합 니 다.
해결 방법
my.cnf 파일 을 편집 하고 기본 인증 플러그 인 을 변경 합 니 다.
$ vi /etc/my.cnf
[my sqld]에 아래 코드 추가
default_authentication_plugin=mysql_native_password
그리고 mysql 다시 시작
$ service mysqld restart
사이트 가 마침내 정상적으로 열 렸 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
8 - Public Key Retrieval is not allowedStart from MySQL 8, the authentication plugin is changed to "caching_sha2_password". Therefore, phpMyAdmin or other clie...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.