2014-10-06 3 views
0

나는 루트 암호를 재설정 한 후 문제없이 MySQL 데이터베이스에 root 계정은 PW 다시 부팅 (윈도우 7 SP1) 이후에 모든 시간을 다시 필요로 연결할 수 있습니다 mysql-init.txt 포함액세스

: 나는 데이터베이스에 연결하려고 할 때

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;

을 그러나, 나는 윈도우를 부팅 할 때마다, 나는이 오류 메시지가 :

C:\\>mysql -u root -p Enter Password: ******** ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

암호 없이도 동일한 시도를했습니다.

재부팅 할 때마다 루트 암호를 재설정하는 것이 좋지 않은 것처럼 보입니다. 알려진 수정 프로그램의 알려진 문제점입니까?

+0

이것은 프로그래밍이 아니라 데이터베이스 구성이므로 [dba.se]에 속합니다. –

답변

0

올바른 방법은 다음과 같습니다.

관리자로 시스템에 로그온하십시오.

MySQL 서버가 실행 중이면 중지하십시오. Windows 서비스로 실행중인 서버의 경우 서비스 관리자로 이동하십시오. 시작 메뉴에서 제어판, 관리 도구, 서비스를 차례로 선택하십시오. 목록에서 MySQL 서비스를 찾아서 중지하십시오.

서버가 서비스로 실행되고 있지 않으면 작업 관리자를 사용하여 강제로 중지해야 할 수 있습니다.

다음 문을 포함하는 텍스트 파일을 만듭니다. 암호를 사용하려는 암호로 바꾸십시오.

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES; 각각 한 줄에 UPDATE 및 FLUSH 문을 씁니다. UPDATE 문은 모든 루트 계정의 암호를 다시 설정하고 FLUSH 문은 암호 변경을 알 수 있도록 메모리에 권한 테이블을 다시로드하도록 서버에 지시합니다.

파일을 저장하십시오. 이 예의 경우 파일의 이름은 C:\mysql-init.txt입니다.

콘솔 창을 열고 명령 프롬프트로 이동하십시오. 시작 메뉴에서 실행을 선택한 다음 실행할 명령으로 cmd를 입력하십시오.

시작 특수 --init-file 옵션을 사용하여 MySQL 서버는 (옵션 값의 백 슬래시 두 배로 것을 알) : 당신이 C가 아닌 다른 위치에 MySQL을 설치 한 경우

C:\> C:\mysql\bin\mysqld-nt --init-file=C:\\mysql-init.txt : \ mysql을 따라 명령을 조정 .

서버는 시작할 때 --init-file 옵션으로 명명 된 파일의 내용을 실행하면서 각 루트 계정 암호를 변경합니다.

서버 출력을 로그 파일이 아닌 콘솔 창에 표시하려면 명령에 --console 옵션을 추가 할 수도 있습니다.

당신은 MySQL 설치 마법사를 사용하여 MySQL을 설치 한 경우, 당신은 --defaults-file 옵션을 지정해야 할 수도

C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.0\\my.ini" --init-file=C:\\mysql-init.txt 적절한 --defaults-파일 설정은 서비스 관리자를 사용하여 찾을 수 있습니다에서를 시작 메뉴에서 제어판, 관리 도구, 서비스를 차례로 선택합니다. 목록에서 MySQL 서비스를 찾아 마우스 오른쪽 단추로 클릭 한 다음 Properties 옵션을 선택하십시오. 실행 파일 경로 필드는 --defaults-file 설정을 포함합니다.

서버가 성공적으로 시작된 후 C:\mysql-init.txt을 삭제하십시오.