답변:
MySQL Reference Manual 의 루트 암호 재설정에 관한 장을 읽고 실행 하십시오 .
이 절차는 인증없이 mysql 데몬을 시작하여 자격 증명을 제공하지 않고 연결할 수 있도록합니다. 이 모드에서는 정상적으로 연결하고 비밀번호와 권한을 재설정 할 수 있습니다. 그런 다음 적절한 권한을 부여하여 mysql을 다시 시작하는 것을 잊지 마십시오.
이것이 데비안 / 우분투 박스라면, debian-sys-maint 라는 특별한 루트와 동등한 계정이 있습니다 . /etc/mysql/debian.cnf 에서 비밀번호를 읽을 수 있습니다
이 비밀번호를 사용하여 다음을 사용하여 mysql에 debian-sys-maint로 로그인 할 수 있습니다.
mysql --defaults-file=/etc/mysql/debian.cnf mysql
로그인 한 후 다음을 수행하십시오.
update user set password=password('<new password>') where user='root';
flush privileges;
quit;
이제 새 비밀번호를 사용하여 root에 액세스 할 수 있습니다 :
mysql -uroot -p
내 루트 사용자가 존재하지 않았습니다. 의 위에
CREATE USER root@localhost;
알았어
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
해결책은
mysqld_safe --skip-grant-tables &
mysql
INSERT INTO user (Host,User,Password) VALUES ('localhost', 'root', 'changethispassword');
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
그 후 나는 약간의 도움을 받아 모든 priv을 하나씩 추가했습니다.
mysql mysql -e "SELECT * FROM user WHERE User='root'\G"|grep N
(이것은 더 자동화 될 수 있고 자동화되어야합니다)
참고 :에서 'Y'의 올바른 수를 찾는 INSERT
것은 PITA입니다.
MySQL Reference Manual의 단계 가 명확하지 않기 때문에 더 쉬운 언어로 여기에 대답하려고합니다. (이 답변은 MacBook OSX 사용자와 관련이 있습니다) :
my.cnf
. (나를 위해 @ 배치되었습니다 /Applications/XAMPP/xamppfiles/etc
. 찾을 수 없으면 검색 할 수 있습니다).my.cnf
텍스트 편집기에서 파일을 엽니 다 . "skip-grant-tables"
끝에 따옴표없이 추가 [mysqld]
하고 파일을 저장하십시오. skip-grant-tables
옵션 부터 시작 하겠습니다. Terminal
및 실행mysql
mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit