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

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.

Replies are listed 'Best First'.
Re^4: plugin 'mysql_old_password' cannot be loaded
by marto (Cardinal) on Feb 15, 2019 at 15:54 UTC

    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.

Re^4: plugin 'mysql_old_password' cannot be loaded
by frazap (Monk) on Feb 15, 2019 at 14:47 UTC

    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
        The output with my 5.24 perl is
        OS : MSWin32 Perl : v5.24.0 DBD::MySQL : 4.033 Server : 5.5.53-0+deb7u1-log
        With the portable 5.28 perl (and a few changes in the code)
        OS : MSWin32 Perl : v5.28.1 DBD::MySQL : DBI connect('...:3306',...,...) failed: Authentication plugin 'mysql_o +ld_password' cannot be loaded: The specified module could not be foun +d. at get_version.pl line 21.
      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

        Result: 16