in reply to Re^8: plugin 'mysql_old_password' cannot be loaded
in thread plugin 'mysql_old_password' cannot be loaded

That's good, if your password field in the user table is char(41) ( get DBA to run 'describe myslq.user' query ) then Scenario 3 at bottom of this document suggests that resetting the password will create a long password hash. That should be more compatible with the later MySQL libraries.

Be AWARE of the effect on pre-4.1 clients though.
In scenario 3, accounts with short hashes become inaccessible to pre-4.1 clients if you change their passwords without explicitly using OLD_PASSWORD().

poj
  • Comment on Re^9: plugin 'mysql_old_password' cannot be loaded

Replies are listed 'Best First'.
Re^10: plugin 'mysql_old_password' cannot be loaded
by frazap (Monk) on Feb 21, 2019 at 13:46 UTC

    Thanks !

    I've found that this portable version of Strawberry include the version 4.033 of DBD::mysql, and the connection to the server works.

    Am I correct with saying that

    SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('password');
    • Will not change perl scripts (or other clients) that can connect now to keep on connecting ?
    • Will remove the error with the missing mysql_old_password plugin ?

    F

      Will remove the error with the missing mysql_old_password plugin ?

      No, this is how I understand it ;

      Support for pre-4.1 password hashes was removed in MySQL 5.7.5
      Strawberry Perl 5.24.4.1 is compiled with mysql-5.7.16 so will not work with any user account that has a short (16 byte) password hash like your current one.
      It's the version of mysql library that's important not the version of the DBD-mysql module.

      These versions should work with 16-byte hash (or 41-byte hash)

      Perl 5.20.3   (2016-03-08) comes with DBD-mysql 4.033 and mysql-5.1.44 so post 4.1 and pre 5.7.5
      Perl 5.24.0.1 (2016-05-11) comes with DBD-mysql 4.033 and mysql-5.1.44 so post 4.1 and pre 5.7.5
      

      This version should work only with 41-byte hash.

      Perl 5.24.1.1 (2017-01-16) comes with DBD-mysql 4.041 and mysql-5.7.16 so post 5.7.5.

      To use perl 5.24.1.1 either

      1. For existing user (with 16-byte hash) generate a new 41-byte hash using 
           SET PASSWORD FOR 'some_user'@'some_host' = PASSWORD('password');
      
         If you do that any existing pre-4.1 client will not be able to use that user account.
         
         For info the first production version of mysql-4.1.7 was released
         in October 2004.
        
         note. PASSWORD_OLD('password') generates a 16-byte hash.
        
      or 
      
      2  Create a new user account (which will be by default a 41-byte hash) and use that.    
         Any pre-4.1 clients could continue to use the old account.
      
      poj