Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^8: plugin 'mysql_old_password' cannot be loaded

by frazap (Monk)
on Feb 21, 2019 at 10:49 UTC ( [id://1230295]=note: print w/replies, xml ) Need Help??


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

Result: *DEFC3C96B99362885AD525B7AD2A5F02EED43E57

F

Replies are listed 'Best First'.
Re^9: plugin 'mysql_old_password' cannot be loaded
by poj (Abbot) on Feb 21, 2019 at 12:51 UTC

    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

      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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1230295]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2024-03-29 05:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found