今日、同僚が mysql のセキュリティを調整していました。ユーザーを削除するときに、誤って root@localhost を削除してしまいました。後で追加しましたが、ログインすると、データベース内の多くのライブラリがなくなっていることがわかりました。混乱して、後で見て思い出しました当時も同様の状況が発生しました主な原因はrootユーザーに権限がなかったため権限テーブルがスキップされてしまい権限を問い合わせてみたところ権限が本当に不足していることが判明しましたテストが完了したら、次の処理手順を実行します。
最初のステップは、認証フォームをスキップして mysql にログインすることです。
1. pkill はインスタンス プロセスを停止します。 2. mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-tables & 3. mysql -S /data/3306/mysql.sock 4. mysql を更新します。 user SET password=PASSWORD('oldboy123') WHERE user='root' and host='localhost'; 5. フラッシュ権限; 6. mysqld_safe プロセスを強制終了します 7. /etc/init.d/msyql start 起動してログインするだけですmysqlは通常 -uroot -poldboy123
ステップ 2: 権限を変更する ( root パスワードを初期化することもできます)
mysql> mysql を使用します。 テーブル名と列名を補完するためのテーブル情報の読み取り-A DatabaseChanged mysql> mysql>showdatabase; を使用して、この機能をオフにして起動を高速化することができます。 +----------------------+ | データベース | +----------------------+ | 情報スキーマ | | mysql | | オールドボーイ | パフォーマンススキーマ | | 秋月涛 | | テスト | +----------------------+ セット内の 6 行 (0.00 秒) mysql> テーブルを表示; +-------------------------------------+ | mysql 内のテーブル | +-------------------------------------+ | 列_特権 | | データベース | | イベント | | 機能 | | 一般ログ | | ヘルプ_カテゴリー | | ヘルプ_キーワード | | ヘルプ_リレーション | | ヘルプトピック | | ホスト | | ndb_binlog_index | | プラグイン | | プロシージャ | | procs_priv | | プロキシ_priv | | サーバー | | 遅いログ | | テーブル_特権 | | タイムゾーン | | タイムゾーンリープ秒 | | タイムゾーン名 | | タイムゾーン遷移 | ユーザーの更新 set Process_priv = 'Y' ここで、ユーザー = 'root'; ユーザーを更新します。 File_priv = 'Y' ここで、ユーザー = 'root'; ユーザーの更新 set Grant_priv = 'Y' ここで、ユーザー = 'root'; ユーザーの更新 set References_priv = 'Y' ここで、ユーザー = 'root'; ユーザーセットの更新 Index_priv = 'Y' ここで、ユーザー = 'root'; ユーザーの更新セット Alter_priv = 'Y' ここで、ユーザー = 'root'; ユーザーの更新 set Show_db_priv = 'Y' ここで、ユーザー = 'root'; ユーザーを更新します。Super_priv = 'Y'、ユーザー = 'root'; ユーザーの更新 set Create_tmp_table_priv = 'Y' ここで、ユーザー = 'root'; ユーザーの更新 set Lock_tables_priv = 'Y' ここで、ユーザー = 'root'; ユーザーの更新 set Execute_priv = 'Y' ここで、ユーザー = 'root'; <a i=10> ユーザーの更新 set Repl_slave_priv = 'Y' ここで user = 'root'; ユーザーの更新 set Repl_client_priv = 'Y' ここで user = 'root'; ユーザーの更新 set Show_view_priv = 'Y' ここで、ユーザー = 'root'; ユーザーの更新 set Create_routine_priv = 'Y' ここで user = 'root'; ユーザーの更新 set Alter_routine_priv = 'Y' ここで user = 'root'; ユーザーの更新 set Create_user_priv = 'Y' ここで user = 'root'; ユーザーの更新 set Event_priv = 'Y' ここで、ユーザー = 'root'; ユーザーの更新 set Trigger_priv = 'Y' ここで、ユーザー = 'root';