Mysqlパスワードが失われました


作業環境
  • Razvian OS
  • MariaDB(Mysql)
  • mysql Ver 15.1 Distrib 10.3.29-MariaDB, for debian-linux-gnueabihf (armv7l) using readline 5.2
  • MariaDBを使う時パスワードを忘れました.
    パスワードが入力されていない場合
    mysql -u root
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    パスワードが間違っている場合
    mysql -uroot -p
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    そのため、パスワードをリセットする必要があります.
  • mysqld停止
  • systemctl stop mysqld
    systemctl status mysqld

    このときpasswordは現在ログインしているuser(pi)のパスワードです.

    死んだと見せびらかす
  • Mysql環境変数の設定
    パスワードなしでアクセスできるように環境変数を設定します.
  • sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
  • Mysql
  • を再起動
    systemctl start mysqld
    mysql -u root -p

  • パスワードを再設定します.
  • mysql> UPDATE mysql.user SET authentication_string = PASSWORD("dufTlagltkfwk2)2)!!") WHERE User = 'root' AND Host = 'localhost';
    mysql> FLUSH PRIVILEGES;
  • mysqlを終了したら、さっき設定した環境変数を再削除します.
  • systemctl stop mysqld
    systemctl unset-environment MYSQLD_OPTS
    systemctl start mysqld
  • が設定されているかどうかを確認します.