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

Thanks for helping

So the only option is to create a new user and password on the mysql server that would have the same rights as the old one, so that I could use this new one with a recent client, and keep the old one with older client ?

F

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

Replies are listed 'Best First'.
Re^3: plugin 'mysql_old_password' cannot be loaded
by Lotus1 (Vicar) on Feb 15, 2019 at 14:26 UTC

    Marto didn't say anything about logins or passwords. edit:(he did mention password hashing, my mistake.) Marto's comments were about the Perl module you copied being a mismatch for the portable Perl you installed. You need to install the module in your portable Strawberry Perl using cpan. Open a command prompt and run portableshell.bat in the portable Strawberry Perl folder. Then run cpan and install the module.

    Edit:I could be wrong but I believe cpan will let you install an older version of the module so you could find the version of the working one and install it to the new Strawberry Perl. Here is an article about how to do it. The example given is cpan SAMV/Set-Object-1.28.tar.gz for installing a specific version of Set::Object with author SAMV.

      Like many DBDs the driver is bound to a client library (and dev headers). The version of this client library is different. See Re^5: plugin 'mysql_old_password' cannot be loaded. Building (manually or otherwise) an older version of DBD::mysql against the same client library (etc) won't resolve the issue I believe.

      I realize it's probably not a question involving perl but rather about connecting to mysql. Sorry, but it would help me to see if I could solve this only from the perl side or if I had to ask my DB Admin...

      (And ask what ? creating a new user for my DB ? Setting old_passwords to ON ?)

      Installing an older version of which one ? DBIx::Class ? DBI ? DBD::Mysql ?

      I'm sure I'm not the first one being hit by that.

      But anyway thanks for the proposal, I will try that if everything else fails.

      Wich module should I downgrade ?

        Run this program (with your credentials) on both old and new perls and post the results so we can see which versions you have.

        #!/usr/bin/perl use strict; use DBI; my $dbh = get_dbh(); my ($ver) = $dbh->selectrow_array('SELECT VERSION()'); printf "OS : %s\n",$^O; printf "Perl : %s\n",$^V; printf "DBD::MySQL : %s\n",$DBD::mysql::VERSION; printf "Server : %s\n",$ver; sub get_dbh { my $server = 'localhost'; my $database = "pm"; my $user = "user"; my $pw = "password"; my $dsn = "dbi:mysql:$database:$server:3306"; my $dbh = DBI->connect($dsn, $user, $pw, { RaiseError=>1, AutoCommit=>1 } ); return $dbh; }
        poj
        if I had to ask my DB Admin.

        Ask what the length is of the string in the user.password field

        SELECT LENGTH(PASSWORD) FROM USER 
        WHERE USER = 'yourusername'
        
        poj