Khanh Hoang - Kenn
Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.
Sometimes, whether in testing or other situations, you need to reset a password (often the admin password) for a Drupal site.
Edit: The shortest answer is that two wonderful options are built into drush!
# Get an admin login link drush uli # Set the password for any user drush upwd admin --password="newpassword"
The latest versions of drush have drush uli
which just gives you a one-time login link for admin.
$ drush uli http://default/user/reset/1/1311169130/gf-1uDYC51jONONNF-jq3_ciKfLqhE93SsS9YNAnaEY
Unfortunately it doesn't get the hostname right in most cases (probably there's no way to know it if base_url is not set) so you have to change "default" correct hostname.
So in the case above, I would paste the link into a browser and then change it to
http://example.com/user/reset/1/1311169130/gf-1uDYC51jONONNF-jq3_ciKfLqhE93SsS9YNAnaEY
Now for the long version
cd <drupal_root_directory> drush sql-cli # or mysql -u<user> -p<pass> <drupal_db> update users set name='admin', pass=md5('drupal');
and then log in with username 'admin' and password 'drupal'.
But no more. Drupal 7 has a unique hash for each site, which means you can't just use the md5() trick any more. However, there is a script in the scripts directory that will do this.
cd <drupal root directory> php scripts/password-hash.sh 'drupal'
Now copy the resultant hash and paste it into the query:
drush sql-cli update users set name='admin', pass='pasted_big_hash_from_above' where uid=1; quit
Bình luận (0)
Add Comment