

MySQL の root password が問われます。`--skip-grant-tables` は使えません。

[code]

    $ mysql -u root
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    
[/code]

となりログインすることができません。  
どうすれば良いでしょうか？

[code]

    $ sudo systemctl stop mysqld.service
    $ sudo systemctl start mysqld.service --skip-grant-tables
    systemctl: unrecognized option '--skip-grant-tables'
    
[/code]

[code]

    $ sudo systemctl start mysqld.service
    $ mysql -u root
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    
[/code]

インストールの履歴

[code]

     1  sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
     2  sudo yum-config-manager --disable mysql80-community
     3  sudo yum-config-manager --enable mysql57-community
     4  yum info mysql-community-server
     5  sudo yum install mysql-community-server -y
     6  mysqld --version
    
[/code]


CC BY-SA 4.0
2021-05-10T17:26:10.533
75769
2022-10-04T05:04:45.523
2021-05-11T01:34:48.950
3060
44839
question
mysql amazon-linux
MySQL のroot passwordが問われます。 --skip-grant-tablesは使えません。


ログファイルに初期パスワードが記載されているようなので、そちらを確認してログインを試してみてください。

**参考:**  
[AWS EC2 AmazonLinux2 MySQL rootユーザの初期パスワードの確認方法 -
Qiita](https://qiita.com/miriwo/items/457d6dbf02864f3bf296)

[code]

    $ sudo less /var/log/mysqld.log
    
    YYYY-MM-DDTHH:MM:SS.260490Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: XXXXXXXXXXXX
    
[/code]

末尾の `XXXXXXXXXXXX` の部分がパスワード

[code]

    $ mysql -u root -p
     > 先ほど確認したパスワードを入力
    
[/code]


CC BY-SA 4.0
2021-05-11T01:39:27.160
75774
2021-05-11T01:39:27.160
3060
75769
answer


[mysql](/questions/tagged/mysql "'mysql' のタグが付いた質問を表示")
もバージョンアップによって仕様が変わっています。 MySQL8 においては MySQL5 の時代の解説ページの内容を参照すると痛い目を見ることがあります。
`mysql.com` 本家の解説を見たほうが良いでしょう。

MySQL8 をインストールした直後の状態だと `root`
の初期パスワードが自動生成されてログファイルに記録される、という解説が[本家マニュアルページ](https://dev.mysql.com/doc/refman/8.0/ja/default-
privileges.html)にあります。なので、今回の場合は MySQL
ログファイル自体を探して、ログファイル中のログ記載からパスワードを探す、のが正規の手段だと思われます。ログファイルが
`/var/log/mysqld.log` だとわかっていればこれをエディタで開いて検索する `vim /var/log/mysqld.log`
とか普通に検索する `grep 'temporary password' /var/log/mysqld.log` とよさそう。初期パスワードがわかれば
`mysql` コマンドにこれを与えればログインできるはず。  
# `sudo` 略

初期パスワードは擬似乱数で生成されているようです。実運用環境で初期パスワードをそのまま使い続けるのが適切かどうかは管理者（あなた）の判断によります。変更するもよし、しないもよし。

質問本文にある `mysqld --skip-grant-table` で MySQL を起動しなおすという手続きは `root`
パスワードを忘れた等の理由によってパスワードを強制再設定するためのものなので、新規インストールした直後にすべきではありません。忘れてください。


CC BY-SA 4.0
2021-05-11T07:37:03.963
75779
2021-05-11T07:37:03.963
8589
75769
answer