आप कुछ चरणों को याद कर रहे हैं। पासवर्ड () कमांड का उपयोग करें और 'व्यवस्थापक' का उपयोग करें और 'रूट' नहीं और फ्लश प्राइवेट भी जोड़ें। मैंने आपके लिए स्क्रिप्ट को यहां फिर से लिखा है:
#!/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;