2017-12-29 6 views
0

나는 이것이 mysql 루트 암호를 변경하거나 재설정하는 가장 안전한 방법이라는 것을 알고 있습니다. 설치 프로그램에서 10 번 중 8 번이 루트 암호를 요구하지 않기 때문에이 작업을 수행하고 있습니다.mysql 루트 암호 재설정

그래서 내가 명령을 실행 : 다음

sudo /etc/init.d/mysql stop 
sudo mysqld_safe --skip-grant-tables & 
sudo mysql -u root 
use mysql; 

를, MySQL의 또는 마리아의 버전에 따라 사용중인 당신은 입력에서

update user set password=PASSWORD("mynewpassword") where User='root'; 

또는

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; 

내 첫 번째 입력. 그런 다음 권한을 새로 고침 : flush privileges; 그리고 나서 mysql을 입력하여 종료합니다 : quit.

이 시점에서 모든 것이 잘되었습니다. 그런 다음 mysql 서버를 다음과 같이 다시 시작합니다. sudo /etc/init.d/mysql start

터미널에서 "OK"가 표시됩니다. 내가 루트로 로그인 할 때 그러나, 내 말은 적절한 오류 메시지 : ERROR 1698 (28000): Access denied for user 'root'@'localhost'

내가 올바른 암호를 입력하고있어 것을 100 % 확신한다. 왜 이런 일이 일어나는 걸까요?

+0

왜 첫 번째 방법을 사용 했습니까? 두 번째 방법이 더 안전 해 보입니다. – Barmar

+0

내가 말했듯이, 첫 번째 방법은 아마 내 버전의 MySQL에서 작동합니다. 나는 다른 하나도 시도 할 수 있다고 생각하지만 작동해서는 안됩니다. –

+1

네가 잘못하고있는 것을보기가 어렵다. 하지만 매번 니켈을 먹으면 누군가가 100 % 자신이 옳은 것을 입력했다고 확신한다고 말했습니다 ... – Barmar

답변

0

중요한 데이터를 모두 백업하고 운영 체제를 다시 설치하면 문제가 해결됩니다. 알다시피 나는 mysql 인증이 작동하는 방식에 영향을주는 깨진 패키지가있다. 깨진 패키지를 수정하는 표준 단계는 아무 쓸모가 없어서 HDD를 지우고 다시 시작했습니다.

MySQL은 아무런 문제없이 설치되었으며 루트 암호를 설정하라는 메시지가 표시되었습니다. 이제 MySQL 인증은 매력처럼 작동합니다.