오후 8:37:34 [mysql] Status change detected: stopped
오후 8:37:34 [mysql] Error: MySQL shutdown unexpectedly.
오후 8:37:34 [mysql] This may be due to a blocked port, missing dependencies,
오후 8:37:34 [mysql] improper privileges, a crash, or a shutdown by another method.
오후 8:37:34 [mysql] Press the Logs button to view error logs and check
오후 8:37:34 [mysql] the Windows Event Viewer for more clues
오후 8:37:34 [mysql] If you need more help, copy and post this
오후 8:37:34 [mysql] entire log window on the forums
대신 먼저 XAMPP에 포함된 MySQL 백업 폴더 를 사용해 보십시오 . 따라서 다음 단계를 수행합니다.
-폴더 이름 mysql/data을 다음으로 변경mysql/data_old
-mysql/data 폴더에서
mysql, performance_schema, phpmyadmin, test 삭제
(ibdata1 제외 모두 삭제)
-mysql/backup에서 ibdata1 제외 카피 후 mysql/dadta 복사
locker
localhost에서 실수로 phpmyadmin의 "root" 사용자의 "unlocked" 옵션을 클릭한 다음 "localhost에 연결하는 동안 ERROR 4151 (HY000): Access denied, this account is locked 오류 발생
4151error-locked 참고
해결방법
xampp/mysql/bin/my.ini 또는 mysql-Config/my.ini
파일에 [mysqld] 부분에 skip-grant-tables를 추가해 봅시다.
lock을 변경하려면 문제는, 서버가 --skip-grant-table 옵션을 가지고 실행되었기 때문에, 해당 쿼리는 실패해 버립니다. 쿼리를 실행하기 전에 flush privileges를 수행하면 됩니다.
locked을 풀어주는 쿼리문 작성
alter user 'root'@'localhost' ACCOUNT UNLOCK;
그리고. my.ini에 작성한 --skip-grant-table 을 제거 후 종료하시면 됩니다.
*skip-grant-tables란? 쉽게 말해서, system 스키마에 있는 grant table을 읽지 않고, 권한 시스템 없이 시작합니다. 얼마나 위험하면, 공식 문서에도 꽤 길게 강조를 하는데요. 권한도 없는 유저가 제 마음대로 남의 데이터베이스를 휘젓고 다닐 수 있다는 의미입니다.
unlock참고자료
진짜 선생님. 제가 구글검색부터 유튜브, 스택오버플로우 5시간동안 검색했는데 이것만큼 확실한게 없었습니다. flush privileges덕에 살았습니다 진짜... phpMyadmin 에서 실행하면 안되고 cmd 에서 실행해야된다고 명시해주시면 더 확실할거 같습니다. 정말 감사합니다.