2013年01月09日
MySQLのrootユーザーが消えた時の対処法
ちなみにOSはCentOS、MySQLはVer. 5.1
以下はSSHでコンソール上で操作。
■まずはMySQLをストップ
# /etc/init.d/mysqld stop
■次にmysqld_safeで立ち上げる事により
認証をパスする事が出来ます。
# /usr/bin/mysqld_safe --skip-grant-tables
※コマンド入力後はそのままで、別にコンソール画面を
立ち上げる。
■別に立ち上げたコンソールからrootでログインする。
# mysql -u root
■「mysql」データベースへ移動する。
mysql> use mysql
■root ユーザーをインサートする
mysql> insert into user (user, host, password) values('root', 'localhost', PASSWORD('pass'));
■rootユーザーに権限を追加する。
とりあえず全権限を与えました。
mysql> update user set
Select_priv='Y',
Insert_priv='Y',
Update_priv='Y',
Delete_priv='Y',
Create_priv='Y',
Drop_priv='Y',
Reload_priv='Y',
Shutdown_priv='Y',
Process_priv='Y',
File_priv='Y',
Grant_priv='Y',
References_priv='Y',
Index_priv='Y',
Alter_priv='Y',
Show_db_priv='Y',
Super_priv='Y',
Create_tmp_table_priv='Y',
Lock_tables_priv='Y',
Execute_priv='Y',
Repl_slave_priv='Y',
Repl_client_priv='Y',
Create_view_priv='Y',
Show_view_priv='Y',
Create_routine_priv='Y',
Alter_routine_priv='Y',
Event_priv='Y',
Trigger_priv='Y',
Create_user_priv='Y'
where User='root';
■情報をflushする
mysql> flush privileges;
これでrootユーザーを作ることが出来ました。
あとはexit してmysqlから抜けます。
■mysqld_safeのプロセスを切るためにプロセスIDを確認します。
# ps aux
■mysqld_safeのプロセスIDをkill
# kill プロセスID
これで完了です。
あとは通常通りmysqldをスタートさせて、rootで
ログイン後、ユーザーを追加出来るようになりました。
いや~しかし、こういうトラブルは二度と起こしてほしくないと思う反面、
トラブルがあって、それを解決してこそエンジニアは成長できるから
トラブルと取るかチャンスと取るかはエンジニア次第ですね。
以下はSSHでコンソール上で操作。
■まずはMySQLをストップ
# /etc/init.d/mysqld stop
■次にmysqld_safeで立ち上げる事により
認証をパスする事が出来ます。
# /usr/bin/mysqld_safe --skip-grant-tables
※コマンド入力後はそのままで、別にコンソール画面を
立ち上げる。
■別に立ち上げたコンソールからrootでログインする。
# mysql -u root
■「mysql」データベースへ移動する。
mysql> use mysql
■root ユーザーをインサートする
mysql> insert into user (user, host, password) values('root', 'localhost', PASSWORD('pass'));
■rootユーザーに権限を追加する。
とりあえず全権限を与えました。
mysql> update user set
Select_priv='Y',
Insert_priv='Y',
Update_priv='Y',
Delete_priv='Y',
Create_priv='Y',
Drop_priv='Y',
Reload_priv='Y',
Shutdown_priv='Y',
Process_priv='Y',
File_priv='Y',
Grant_priv='Y',
References_priv='Y',
Index_priv='Y',
Alter_priv='Y',
Show_db_priv='Y',
Super_priv='Y',
Create_tmp_table_priv='Y',
Lock_tables_priv='Y',
Execute_priv='Y',
Repl_slave_priv='Y',
Repl_client_priv='Y',
Create_view_priv='Y',
Show_view_priv='Y',
Create_routine_priv='Y',
Alter_routine_priv='Y',
Event_priv='Y',
Trigger_priv='Y',
Create_user_priv='Y'
where User='root';
■情報をflushする
mysql> flush privileges;
これでrootユーザーを作ることが出来ました。
あとはexit してmysqlから抜けます。
■mysqld_safeのプロセスを切るためにプロセスIDを確認します。
# ps aux
■mysqld_safeのプロセスIDをkill
# kill プロセスID
これで完了です。
あとは通常通りmysqldをスタートさせて、rootで
ログイン後、ユーザーを追加出来るようになりました。
いや~しかし、こういうトラブルは二度と起こしてほしくないと思う反面、
トラブルがあって、それを解決してこそエンジニアは成長できるから
トラブルと取るかチャンスと取るかはエンジニア次第ですね。
Posted by フクタケ at 21:00│Comments(0)
│MySQL