개발/Web

MySQL 설치 에러: Can not perform keyring migration

센솔 2022. 8. 19. 00:02

mysqld: Can not perform keyring migration : Invalid --keyring-migration-source option.

 

MySQL 설치 방법 포스팅을 쓰다가 이것저것 건들다보니 에러가 발생해버렸다. 에러 해결법을 구글링한 결과다.

⚠️ 주의사항!!

아래 방법으로 진행 시 data 폴더를 삭제하는 경우 데이터가 날아갈 수 있다. 가급적 설치 단계에서 오류가 발생한 경우에 이 방법을 따르고, 아니라면 데이터 백업을 해둔 후 시도하도록 하자.
[*8월 19일 추가]
'net start mysql' 명령어를 한번 시도해보자. MySQL 프로세스가 중지 상태일 때 저 문제가 뜨는 것 같기도 하다.

 


1. MySQL 설치경로 복사

2. cmd 관리자 권한으로 실행

3. 'MySQL 설치경로' > bin 폴더로 이동

cd 'MySQL 설치경로'
cd bin

4. mysqld --initialize-insecure --console 입력

mysqld --initialize-insecure --console

위와 같이 입력 시 data 폴더가 생성되며 root 계정의 비밀번호가 자동으로 생성된다.

 

여기에서 몇몇 에러를 마주할 수 있는데,

 

  • 만약 data 폴더가 이미 있는 경우

이 경우에는 data 폴더를 삭제한 후 다시 명령어를 입력해보자. 이렇게 할 시 기존 데이터는 삭제될 수 있다는 점을 반드시 유의하도록 하자.

  • data 폴더가 생성되지 않는 경우

--basedir과 --datadir 을 통해 경로를 수동으로 설정해보자

mysqld --initialize-insecure
--basedir='mysql 설치 경로'
--datadir=''mysql 설치 경로''/data

data 폴더 설치 경로 수동 설정

 

5. MySQL 서버 실행

mysqld --console

명령어 입력 시 "Ready for connections. Version: '8.0.30' socket: '' port: 3306" 이라는 메시지가 제대로 보이는 것을 볼 수 있다. 이제 이 서버가 실행되는 동안은 --skip-password 로 비밀번호 없이 접속이 가능하다.

 

6. cmd 창 하나 띄우기

cd 'MySQL 설치경로'
cd bin

cmd 창을 하나 더 연다음, 아까 했던 것처럼 MySQL 설치 경로\bin 경로로 이동해주자.

 

7. MySQL 접속하기

 

mysql -u root --skip-password

위 명령어를 입력하면 패스워드를 치지 않고 MySQL에 일단 접속이 된 모습을 볼 수 있다.

언제나 그랬듯, 접속하자마자 제일 먼저 해주어야 하는 것은 비밀번호 변경이다.

 

 

8. MySQL 비밀번호 변경하기

ALTER USER 'root'@'localhost' IDENTIFIED BY '새 비밀번호';

이제 새 비밀번호 입력까지 마쳤다면, 다음부터는 cmd에서 'MySQL 설치경로\bin' 위치까지 이동 후 다음 커맨드 입력 후 비밀번호를 입력한다면 언제든 DB에 접속할 수 있다.

mysql -u root -p


Reference

https://stackoverflow.com/questions/51448958/mysql-server-8-0-keyring-migration-error-at-login

 

mysql server 8.0 keyring migration error at login

I am using MySQL Server 8.0 on Windows 10. I followed this tutorial to initialize. C:\Program Files\MySQL\MySQL Server 8.0\bin λ mysqld --initialize However, when I try to login with the temporary

stackoverflow.com