2012-01-12 92 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"