**SQL初心者なのでそれなりのレベルに合わせたご回答をお願いします。
WindowsServer2003でMySQL5を使用しています。
MySQLAdministratorで操作を間違え、rootユーザの削除をしてしまい、rootでの作業ができなくなりました。
その後、下記のサイトを参考にして、6.のrootに新しいパスを設定する所までは行いました。
http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
が、ユーザの権限部分?だと思うのですが、information_schemaのUSER_PRIVILEGESが1行しかなく、root@localhostにPRIVILEGE_TYPEがUSAGEとして設定されているだけです。
。
とりあえずrootが再作成できればいいので、全ての権限をONで再作成するSQL文を教えてください。
一応バックアップサーバに同等のテーブルがありますが、これを転記/SQL構文の作成もよくわからないので、
「○○をinsertしてください。」ではなく具体的なSQL文を示していただければ幸いです。
(質問文が長すぎると蹴られてしまったので続きはコメントに記載します)
以下の手順を実行してください。
ご質問手順を行ったことがないので分かりませんが、権限が失われた状態の root ユーザーが存在していれば、手順の4,4-1はスキップできます。
net stop mysql
net start mysql --skip-grant-tables
mysql -u root
use mysql;
update user set password=PASSWORD('パスワード') where user='root';
update user set Select_priv='Y', Insert_priv='Y', Update_priv='Y', Delete_priv='Y', Create_priv='Y', Grant_priv='Y', Alter_priv='Y' where User='root';
flush privileges.
exit;
これ以降は、再びDOSプロンプトでの作業になります。
net stop mysql
net start mysql
以下の手順を実行してください。
ご質問手順を行ったことがないので分かりませんが、権限が失われた状態の root ユーザーが存在していれば、手順の4,4-1はスキップできます。
net stop mysql
net start mysql --skip-grant-tables
mysql -u root
use mysql;
update user set password=PASSWORD('パスワード') where user='root';
update user set Select_priv='Y', Insert_priv='Y', Update_priv='Y', Delete_priv='Y', Create_priv='Y', Grant_priv='Y', Alter_priv='Y' where User='root';
flush privileges.
exit;
これ以降は、再びDOSプロンプトでの作業になります。
net stop mysql
net start mysql
細かい事を確認しますが、、
・指定するフィールド名に"_priv"とついているのは MySQLのエスケープ処理 で合っていますでしょうか
・4-2の手順だとフィールドに追加される値は"Y"ですよね?
バックアップサーバのほうは全て"YES"となっています。
・指定するフィールド名に"_priv"とついているのは MySQLのエスケープ処理 で合っていますでしょうか
いいえ。
Select_priv は select 文の実行権限を許可するフィールド名です。
Update_priv は update 文の実行権限、Delete_priv は delete 文の実行権限、以下同様です。
・4-2の手順だとフィールドに追加される値は"Y"ですよね?
表示上が YES になっているだけで、Update 文での代入は 'Y' で問題ありません。
※設定された回答回数の上限になりました。さらにフォローが必要でしたら、コメント欄を開けていただくか、回答回数を増やしてください。
了解しました。
何かおかしくなったら再度質問すると思いますので宜しくお願いします。
細かい事を確認しますが、、
・指定するフィールド名に"_priv"とついているのは MySQLのエスケープ処理 で合っていますでしょうか
・4-2の手順だとフィールドに追加される値は"Y"ですよね?
バックアップサーバのほうは全て"YES"となっています。