質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

解決済

MySQLで rootのパスワードを設定していなかったのにパスワードがないと入れず、mysqld_safe --skip-grant-tables で入って設定し直したいが、それもできない

oyatsu8
oyatsu8

総合スコア89

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

2回答

0リアクション

0クリップ

605閲覧

投稿2022/09/06 06:28

編集2022/09/08 13:46

前提

MySQL初心者です。
MySQLで rootのパスワードを設定していなかったので、 rootのパスワードをリセットする方法でやろうとしたのですが、エラーが出て自力で解決できなかったため質問させていただきます。

環境

macOS Monterey 12.3.1(M1,2020)
Mysql Ver 8.0.30 for macos12.4 on arm64 (Homebrew)
Python 3.8.9

参考にした記事

B.3.3.2 root のパスワードをリセットする方法
https://dev.mysql.com/doc/refman/8.0/ja/resetting-permissions.html

発生している問題・エラーメッセージ

最初にこうしたのですが入れず、 % mysql ERROR 1045 (28000): Access denied for user 'ユーザー名'@'localhost' (using password: NO) このようにしても入れず、、 % mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

そこで、 % mysqld_safe --skip-grant-tables & して、ターミナルを新しく開き、ALTER USERで root に設定したパスワードを入れましたが、下記のエラーが出ました。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '設定したパスワード'; ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

試したこと

(mysqlをインストール)

% mysql.server stop
Shutting down MySQL
. SUCCESS!
ユーザー名@パスワード-2 mysql % mysqld_safe --skip-grant-tables &

//ここにもエラーらしきものが、、
[1] 47244
ユーザー名@パスワード-2 mysql % 2022-09-06T06:17:10.6NZ mysqld_safe Logging to '/opt/homebrew/var/mysql/パスワード-2.local.err'.
2022-09-06T06:17:10.6NZ mysqld_safe Starting mysqld daemon with databases from /opt/homebrew/var/mysql

//もう一つターミナルを立ち上げ
% mysql
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'パスワード;
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'
mysql>

コメントを参考にしながら自己解決

その後、再び
mysqld_safe --skip-grant-tables
をたたき、
別ウィンドウを開き、
use mysql;
select user,host from user;
したところ、ユーザーがいなかったので、mysql.infoschema を作り、権限を与えたところ、mysql.infoschemaで入れるようになりました。
これで解決したと言えるのかわからないのですが、アドバイスを参考にしながらなんとかパスワードも設定し、それで入れるようになりました。
アドバイスくださったquickquipさん、Matsumon0104さんに感謝します。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

quickquip

2022/09/06 07:06

> MySQLで rootのパスワードを設定していなかった mysql -u root でパスワードなしで入れる(た)のでは? インストールした時に We've installed your MySQL database without a root password. と言われますよ。
oyatsu8

2022/09/06 07:12

ありがとうございます。設定していなかったつもりなのですが、下記のようになってしまいます、、 % mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) % mysql ERROR 1045 (28000): Access denied for user 'phirip'@'localhost' (using password: NO)
quickquip

2022/09/06 07:19

質問の説明が間違っているということなので修正してください。
quickquip

2022/09/06 07:33

mysqld_safe --skip-grant-tables が起動しない理由を探るべきなのでエラーを載せるといいかと思います。
oyatsu8

2022/09/06 13:11

ありがとうございます。mysqld_safe --skip-grant-tablesは起動できています。 % mysqld_safe --skip-grant-tables & で、新しいターミナルで % mysqlで起動しています。
quickquip

2022/09/06 13:41

起動できているならalter userが成功するはずなのでその確信は持てないです 何を見て起動できているという確信を持ちましたか プロセスIDなどを確認したとかですか
oyatsu8

2022/09/06 14:26 編集

すみません、mysql>  と、 MySQLが起動するということは、mysqld_safe --skip-grant-tables が成功していることだと思っていました、、そのため、mysqld_safe --skip-grant-tablesは正常に動いていて、% mysql -u rootだけうまくいかないと思い込んでいました。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。