MySQLが管理者権限でログイン不可になった

PHP学習

時間の無駄

これまじで時間かかった。時間の無駄だった。自分の備忘録のためにもここに記載残しておく。
実施したことは以下

-- とりあえずmysqlを停止する
mysql.server stop

-- セーフモードで起動する
-- これが何を意味してるのかは知らん。バックグラウンドで実行してるんだなぐらい
mysqld_safe --skip-grant-tables &

-- 別ターミナルを開きrootユーザでパスワードなしでログインする
-- もう一度いう別ターミナルで
mysql -u root

-- rootのパスワードをあらためてリセット
UPDATE mysql.user SET authentication_string=null WHERE User='root';

-- mysql抜ける
exit

-- セーフモードで起動してるターミナル閉じる
-- killコマンドで指定して停止してもOK

-- ターミナルを再度起動し、rootでログインをする
mysql.server start
mysql -u root -p

-- 無事ログイン解消

上記に自分でやった内容を記載したが、要するに以下のサイトの手順を踏めばできる。
非常に助かりました。感謝します。
Mac ローカル環境の MySQL 8.x のrootパスワードを忘れた時のリセット方法

そもそも今回やりたかったのは新しいDBを作成したかった

見出しの通り、新しいDB作成したかったのに管理者権限で入れず何もできなくて困った。
本来やりたかった作業も記載しておく。現状は無事できた。

-----------------------------------------
- 管理者ユーザー名    :root
- 管理者ユーザーパスワード:root ※パスワードなし
- 作成ユーザー名     :testuser
- 作成ユーザーパスワード :testpass
- 作成データベース名   :testdb
-----------------------------------------

-- MySQLのインストール確認
mysql --version

--MySQLへのユーザーでのログイン(macユーザ限定)
mysql -u root

-- ここから以下の作業全て管理者ユーザでログインした状態で

-- ユーザーの作成
create user testuser@localhost identified by 'testpass';

-- ユーザーの確認
select Host,User from mysql.user;

-- データベース(スキーマ)の作成
create database testdb default character set utf8;

-- データベース(スキーマ)の確認
show databases;

-- ユーザーへのアクセス権限の付与
grant all privileges on testdb.* to testuser@localhost;

--ユーザーへのアクセス権限の確認
show grants for testuser@localhost;

-- 認証プラグインの変更
alter user testuser@localhost identified with mysql_native_password by 'testpass'; 

-- 認証プラグインの確認
select User,Plugin from mysql.user;

--MySQLからのログアウト
quit

終わり

いつも思うがプログラミングって本質じゃないところに時間がとられることが多くてほんとに嫌になる。
でも実はバグやトラブル解消が本質だったりとか思う今日この頃。
明日からはLaravelというフレームワーク習得していく予定。以上

コメント