2012-01-12 3 views
0

何らかの理由で、以下のスクリプトはrootパスワードをリセットしません。スクリプトはステップを実行するという点では機能しますが、新しいパスワードでrootとしてmysqlにログインしようとすると、変更を認識せず、古いパスワードを使用するように主張します。mysql root password rest

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

新しくインストールすると、奇妙なoldからのユーザーの資格情報を覚えているようです。古いパスワードが新しくインストールされたときにはわからないので、古いパスワードを指定する必要はありません。 – user983022

+0

mysqldサーバを停止し、 '[mysqld]'の下の 'my.cnf'に' skip-grant-tables = 1'を追加し、mysqldサーバを起動し、 'mysql -u root'を使って接続し、' use mysql; mysqldを再起動し、mysqldサーバでmysql -u root -pを実行し、新しいパスワードを入力してください。プロンプト。 –

0

手動

shell> mysqladmin -u root password "newpwd" 
shell> mysqladmin -u root -h host_name password "newpwd" 
のようにSQLの使用のmysqladminからそれをやりたいのはなぜ
関連する問題