2013-06-18 6 views
-2

У меня есть сервер LAMP, работающий на OpenSUSE 12.3. Иногда мне нужно, чтобы восстановить свой пароль MySQL, и я делаю эти шаги каждый раз, когда:Сценарий для автоматизации восстановления пароля MySQL

  1. Stop MySQL (service mysql stop)
  2. Редактировать /etc/my.cnf (vi /etc/my.cnf)
  3. В разделе сервера добавить skip-grant-tables
  4. Start Mysql (service mysql start)

на этом этапе вы сможете войти в MySQL просто отлично (пароли не будет предложено)

Теперь в консоли:

  1. mysql
  2. use mysql;
  3. insert into user (Host, User, Password) values ('localhost','root','');
  4. update user set Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Crea Event_priv='Y', Trigger_priv='Y', Create_tablespace_priv='Y' where user='root'; quit;

(Все эти команды выполняются в тузд консоли или через PHPMyAdmin)

Теперь вышеуказанные команды говорят MySQL для создания корневого пользователя (поскольку он не существует в распределении)

И мы все сделали, теперь вернуться назад

  1. Редактировать my.cnf (vi /etc/my.cnf)
  2. удалить: skip-grant-tables
  3. mysqladmin shutdown
  4. service mysql start
  5. mysqladmin -u root password XXXXXXXXXX

Я хочу автоматизировать этот процесс, когда мне нужно восстановить мой пароль MySQL.

+1

-1: Я думаю, вы могли бы попросить некоторых фрилансеров. –

ответ

0

Вот начало:

service mysql stop 
vi /etc/my.cnf 
# In the server section add skip-grant-tables 
service mysql start 

mysql 
use mysql; 
insert into user (Host, User, Password) values ('localhost','root',''); 
update user set Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_Event_priv='Y', Trigger_priv='Y', Create_tablespace_priv='Y' where user='root'; 
quit; 

vi /etc/my.cnf 
# remove skip-grant-tables 
mysqladmin shutdown 
service mysql start 
mysqladmin -u root password XXXXXXXXXX 

Вы должны распознать код, это довольно много, что вы просили. Недостающие биты для вас, чтобы отделить команды MySQL из команд оболочки, или обернуть их в качестве вызова MySQL:

mysql -D mysql ... 

Кроме того, рассмотреть вопрос о размещении пароля в соответствующим образом защищенный файл или передать его в качестве аргумента к вашему сценарию.

Смежные вопросы