Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como usar o Perl para alterar uma senha do mysql


Você está perdendo algumas etapas. Use o comando PASSWORD() e use 'admin' e não 'root' e também adicione flush priv's. Eu reescrevi o script para você, aqui:
#!/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;