Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser Perl pour changer un mot de passe mysql

Il vous manque quelques étapes. Utilisez la commande PASSWORD() et utilisez 'admin' et non 'root' et ajoutez également des flush priv's.J'ai réécrit le script pour vous, ici :

#!/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;