gpt4 book ai didi

mysql - 如何使用 Perl 更改 mysql 密码

转载 作者:可可西里 更新时间:2023-11-01 07:27:28 24 4
gpt4 key购买 nike

我需要使用 Perl 脚本更改一些 mysql 密码。以下内容在更改数据库条目时有效,但是当我针对 mysql 用户更改修改它时,它会将它们重置为空白密码。在它的末尾“刷新权限”也很好,但我还没有找到方法。

#!/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;
my $sth = $dbh->prepare("update user set password='$newpass' where User='admin'");
$sth->execute() or die $DBI::errstr;
$sth->finish();
$dbh->{AutoCommit} = 0;
$dbh->commit or die $DBI::errstr;

最佳答案

您缺少几个步骤。使用 PASSWORD() 命令并使用“admin”而不是“root”并添加刷新权限。我在这里为您重写了脚本:

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

关于mysql - 如何使用 Perl 更改 mysql 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22720763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com