&을 컴파일하여 x86_64 리눅스 서버에 mysql-5.1.59를 설치했습니다.mysqladmin과 password() 함수의 해시 값이 다른 경우
먼저 나는 CLI 및 로그인에 루트 암호를 설정 :
$ bin/mysqladmin -uroot password 'somepass'
$ bin/mysql -uroot -p 'somepass'
mysql>
로그인 성공!
mysql> grant all privileges on mydb.* to 'myuser'@'localhost' identified by 'somepass';
mysql> flush privileges;
암호는 정확히 루트와 동일합니다 :
은 그럼 SQL 문을 사용하여 사용자를 만들었습니다. 내가 조회 한 후는하지만 :
mysql> select host,user,password from mysql.user;
나는 두 계정의 암호 값이 동일한가없는 것으로 나타났습니다. 그리고 myuser로 로그인 mysql을 시도했지만 실패했습니다.
mysql> update mysql.user set password=PASSWORD('somepass') where user='root';
mysql> flush privileges;
그럼 난 더 이상 루트로 mysql을 로그인 할 수 없습니다 : 나는 루트 암호 이런 식으로 변경하면 그런데
는
$ bin/mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
이 결코 내 다른 서버에서 발생하지 않습니다. 이 문제는 OS와 관련이있는 것처럼 보입니다. 어떻게 해시 된 값이 서로 다른 값을 가질 수 있습니까? 감사합니다.
질문에서 언급 한 두 가지 방법이 각각 다른 소금을 사용하는 것처럼 보입니다. – Dongying
글쎄 그것은 마침내 그것이 내 잘못이라고 밝혀졌습니다 ... 내 암호에 백 슬래시가 있으며 SQL 문에서이 암호를 사용하는 것을 잊어 버렸습니다 ... – Dongying
소금에 절인 암호를 사용하는 경우 모든 암호는 고유 소금. 다시 한번 이것이 MySQL의 암호가 작동하는 방법인지는 모르겠지만 문제가 해결되어 기쁩니다. –