2012-01-12 93 views
0

由于某种原因,以下脚本不会重置root密码。该脚本的作用在于它执行步骤,但是当我尝试以root用户身份以新密码登录时,它无法识别更改并坚持使用旧密码。mysql root密码休息

这里是下面的脚本:

#!/bin/bash 

echo "Resetting root password" 
sudo /etc/init.d/mysql stop 
sleep 2 


if [ -f /root/mysql.reset.sql ]; then 
    rm -f /root/mysql.reset.sql 
    touch /root/mysql.reset.sql 
else 
    touch /root/mysql.reset.sql 
fi 

echo "UPDATE mysql.user SET Password=PASSWORD('akimbo') WHERE User='root'; FLUSH   
PRIVILEGES;" >> /root/mysql.reset.sql 
mysqld_safe --init-file=/root/mysql.reset.sql & 
/etc/init.d/mysql start 
sleep 2 

echo "Done setting mysql password for user root. Password is password." 

所以当我尝试的mysql -uroot -pakimbo它抱怨,只有当我使用旧密码的工作。

任何想法?

欢呼声

回答

3

为什么不使用mysqladmin命令?

mysqladmin -u root -p'oldpassword' password newpass

这也可以用来改变其他用户的密码,以及:

mysqladmin -u sql_username -p oldpassword password newpass

+0

那么当我做一个全新的安装它似乎记得旧的用户凭据是奇怪的。但我不知道新的安装时旧密码是什么,所以我必须使用一种方法,我不需要指定旧密码。 – user983022 2012-01-12 07:56:29

+0

停止mysqld服务器,将'skip-grant-tables = 1'添加到'[mysqld]'下的'my.cnf',启动mysqld服务器,使用'mysql -u root'连接并使用mysql;'然后'更新用户SET密码=密码('new_pwd')WHERE用户='root';',清理my.cnf并重新启动mysqld服务器,用'mysql -u root -p'通过在提示。 – 2012-01-12 23:46:50

0

为什么你希望从SQL使用mysqladmin做它在手动

shell> mysqladmin -u root password "newpwd" 
shell> mysqladmin -u root -h host_name password "newpwd"