mysql root пароль остальные - PullRequest
0 голосов
/ 12 января 2012

По какой-то причине приведенный ниже скрипт не сбрасывает пароль 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 ]

3 голосов
/ 12 января 2012

Почему бы просто не использовать команду mysqladmin?

mysqladmin -u root -p'oldpassword' password newpass

Это также может быть использовано для изменения паролей других пользователей:

mysqladmin -u sql_username -p oldpassword password newpass

0 голосов
/ 12 января 2012

См. http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

Есть опция --skip-grant-tables, которую вы можете запустить при запуске. Затем подключитесь как root, сбросьте свой пароль и затем перезапустите без опции предоставления пропуска

0 голосов
/ 12 января 2012

Почему вы хотите сделать это из SQL, используйте mysqladmin как в руководстве

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