Я скомпилировал и установил mysql-5.1.59 на сервер x86_64 linux.
Сначала я установил пароль root в cli и login:
$ bin/mysqladmin -uroot password 'somepass'
$ bin/mysql -uroot -p 'somepass'
mysql>
Войти успешно!
Затем я создал пользователя с помощью операторов SQL:
mysql> grant all privileges on mydb.* to 'myuser'@'localhost' identified by 'somepass';
mysql> flush privileges;
Пароль в точности совпадает с root.
Но после того, как я спросил:
mysql> select host,user,password from mysql.user;
Я заметил, что значения паролей двух учетных записей не совпадают .
И я попытался войти в MySQL с Myuser, но не удалось.
Кстати, если я изменю пароль root таким образом:
mysql> update mysql.user set password=PASSWORD('somepass') where user='root';
mysql> flush privileges;
Тогда я больше не могу войти в MySQL через root:
$ bin/mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Это никогда не происходит на других моих серверах. Кажется, проблема связана с ОС.
Как хэшированные значения могут отличаться друг от друга?
Спасибо!