sql >> Base de Datos >  >> RDS >> Mysql

Cómo usar Perl para cambiar una contraseña mysql

Te estás perdiendo un par de pasos. Usa el comando PASSWORD() y usó 'admin' y no 'root' y también agrega flush priv's. Reescribí el script para ti, aquí:

#!/usr/bin/perl

use DBI;
use strict;

my $newpass = "newpass";
my $driver = "mysql";
my $database = "mysql";
my $dsn = "DBI:$driver:database=$database";
my $dbh = DBI->connect($dsn, 'root', 'mysql' ) or die $DBI::errstr;
$dbh->{AutoCommit} = 0;
my $sth = $dbh->prepare("update user set password=PASSWORD('$newpass') where User='root'");
$sth->execute() or die $DBI::errstr;
$dbh->do('FLUSH PRIVILEGES') or die $DBI::errstr;
$sth->finish();
$dbh->commit or die $DBI::errstr;