Làm cách nào tôi có thể đặt mật khẩu người dùng mysql bằng mật khẩu được băm trước?
=====
Tôi đã có một cơ sở dữ liệu mysql phiên bản 5.1.73.
Theo tài liệu của mysql, trong các phiên bản mới hơn của mysql, tạo người dùng bằng mật khẩu được làm sẵn
CREATE USER 'ans'@'localhost'
IDENTIFIED BY PASSWORD 'hash_string'
không được chấp nhận và sẽ bị xóa trong bản phát hành MySQL trong tương lai.
Tuy nhiên, tôi không thể tìm ra cái gì (nếu có) là cách mới để thực hiện điều này.
Chúng tôi sử dụng cobbler để thiết lập cơ sở dữ liệu của mình và tôi muốn điền trước cơ sở dữ liệu của mình các tài khoản họ sẽ cần, cùng với mật khẩu họ sẽ sử dụng mà không cần mật khẩu văn bản rõ ràng trong tập lệnh của mình. Tôi đã có thể nghĩ
update mysql.user
set password = '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB'
where user = 'ans';
sẽ thực hiện thủ thuật, nhưng từ thử nghiệm của tôi, điều đó không thực sự thay đổi mật khẩu đăng nhập mysql.
mysql> create user 'ans'@'localhost' identified by 'foo';
mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| ans | localhost | *F3A2A51A9B0F2BE2468926B4132313728C250DBF |
+------+-----------+-------------------------------------------+
mysql> update mysql.user set password = password('bar') where user = 'ans';
Query OK, 1 row affected (0.00 sec)
mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| ans | localhost | *E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB |
+------+-----------+-------------------------------------------+
mysql> quit
$ mysql -uans -pbar
ERROR 1045 (28000): Access denied for user 'ans'@'localhost' (using password: YES)
$ mysql -uans -pfoo
Welcome to the MySQL monitor. Commands end with ; or \g.