MySQL パスワードを忘れた場合 パスワードをリセットする方法 (詳細な手順)

各方法には適用可能な状況があり、特定の状況に応じて適切な方法を選択してください。どちらの方法を選択する場合でも、パスワードをリセットした後は必ず一時ユーザーを削除し、すぐにサービスを再起動してくださいMySQL

1.mysqladminパスワードをリセットするために使用します

  • 故障中

    # systemctl 启动的使用这个停止
    $ sudo systemctl stop mysql
    
    # mac 本机,可以使用这个或可视化界面停止
    $ sudo mysql.server stop
    
  • mysqld_safeコマンドを使用してMySQLサービスを開始し、権限チェックをスキップします。実行後に Enter キーを押す必要がある場合があります。

    $ sudo mysqld_safe --skip-grant-tables &
    
  • MySQLサービスにログインし、mysqladminコマンドを使用してパスワードをリセットします。

    # 无需密码,会直接登入
    $ mysql -u root  
    
    # 刷新权限
    mysql> FLUSH PRIVILEGES;  
    
    # 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    
    # 修改好后退出 MySQL
    mysql> exit
    
  • サービスを停止しMySQL、パスワードを再設定してログインします

    # 1、停止 MySQL 服务上面有,第一条就是
    
    # 2、重启启动 MySQL 服务,并使用密码登入
    # systemctl 启动的使用这个重新启动
    $ sudo systemctl start mysql
    # mac 本机,可以使用这个或可视化界面启动
    $ sudo mysql.server start
    
    # 3、密码登录
    $ mysql -u root -p
    
    # 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。
    

2.mysqldパスワードをリセットするために使用します

  • 故障中

    # systemctl 启动的使用这个停止
    $ sudo systemctl stop mysql
    
    # mac 本机,可以使用这个或可视化界面停止
    $ sudo mysql.server stop
    
  • mysqld_safeコマンドを使用してMySQLサービスを開始し、権限チェックをスキップし、実行後に Enter キーを押します。

    $ sudo mysqld_safe --skip-grant-tables &
    
  • MySQLサービスにログインし、root権限を持つ新しい一時ユーザーを作成します。

    # 无需密码,会直接登入
    $ mysql -u root  
    
    # 刷新权限
    mysql> FLUSH PRIVILEGES;  
    
    # 创建一个临时用户 temp_root 及 temp_password
    mysql> CREATE USER 'temp_root'@'localhost' IDENTIFIED BY 'temp_password';  
    
    # 设置权限
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'temp_root'@'localhost' WITH GRANT OPTION;
    
    # 修改好后退出 MySQL
    mysql> exit
    
  • サービスを停止しMySQL、パスワードログインを再開し、ALTERコマンドを使用してrootユーザーパスワードを変更します。

    # 1、停止 MySQL 服务上面有,第一条就是
    
    # 2、重启启动 MySQL 服务,并使用密码登入
    # systemctl 启动的使用这个重新启动
    $ sudo systemctl start mysql
    # mac 本机,可以使用这个或可视化界面启动
    $ sudo mysql.server start
    
    # 3、临时用户密码登录
    $ mysql -u temp_root -p
    
    # 4、这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    
    # 5、修改好后退出 MySQL
    mysql> exit
    
    # 6、停止 MySQL 服务上面有,第一条就是
    
    # 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。
    
  • もう一度mysqld_safeコマンドを使用してMySQLサービスを開始し、権限チェックをスキップし、一時ユーザーを削除します。

    $ sudo mysqld_safe --skip-grant-tables &  
    
    $ mysql -u root  
    
    mysql> FLUSH PRIVILEGES;  
    
    mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'temp_root'@'localhost';  
    
    mysql> DROP USER 'temp_root'@'localhost';  
    
    mysql> exit
    
  • MySQLサービスを再度再起動し、root変更したパスワードでログインします

    # 1、停止 MySQL 服务上面有,第一条就是
    
    # 2、重启启动 MySQL 服务,并使用密码登入
    # systemctl 启动的使用这个重新启动
    $ sudo systemctl start mysql
    # mac 本机,可以使用这个或可视化界面启动
    $ sudo mysql.server start
    
    # 3、密码登录
    $ mysql -u root -p
    

3.MySQLセキュリティモードを使用してパスワードをリセットします

  • 故障中

    # systemctl 启动的使用这个停止
    $ sudo systemctl stop mysql
    
    # mac 本机,可以使用这个或可视化界面停止
    $ sudo mysql.server stop
    
  • MySQLセーフモードを開始する

    $ sudo mysqld_safe --skip-grant-tables --skip-networking &
    
  • MySQLサービスにログインし、mysqladminコマンドを使用してパスワードをリセットします。

    # 无需密码,会直接登入
    $ mysql -u root  
    
    mysql> FLUSH PRIVILEGES;  
    
    # 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    
    # 修改好后退出 MySQL
    mysql> exit
    
  • MySQLセーフモードを停止する

    $ sudo killall mysqld_safe
    
    # 如果在本地机器上执行上面命令无法停止安全模式,可以通过杀死进程方式解决
    # 1、列出 mysqld_safe 的进程
    $ ps aux | grep mysqld_safe
    
    # 2、拿到 PID 全部杀死,应该是第二列,就几位纯数字的,如果不知道可以单独输出 $ ps aux 看一下。
    $ sudo kill -9 xxx xxx ...
    
  • サービスを停止しMySQL、パスワードを再設定してログインします

    # 1、停止 MySQL 服务上面有,第一条就是,如果通过 $ sudo kill 可以一起就杀死了。
    
    # 2、重启启动 MySQL 服务,并使用密码登入
    # systemctl 启动的使用这个重新启动
    $ sudo systemctl start mysql
    # mac 本机,可以使用这个或可视化界面启动
    $ sudo mysql.server start
    
    # 3、密码登录
    $ mysql -u root -p
    
    # 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。
    

4.my.cnfパスワードをリセットするために使用します

  • この方法方式一は基本的に上記と同じですが、コマンド内のスキップ許可指示を に記述しmy.cnf、修正後に削除する点が異なります。

  • 変更する前に、 my.cnf 必ず mysql プロセスを終了して閉じてください mysql。そうしないと、  接続できないmysql 問題 が発生する可能性があります。sock

  • 故障中

    # systemctl 启动的使用这个停止
    $ sudo systemctl stop mysql
    
    # mac 本机,可以使用这个或可视化界面停止
    $ sudo mysql.server stop
    
  • 開きmy.cnf、存在しない場合は作成します

    $ sudo vim /etc/my.cnf
    

    vim編集するためにエディターに入ったら、それを見つけてキーボードのキーを[mysqld]押してi編集モードに入り、[mysqld]その後に任意の行を追加してskip-grant-tablesパスワード検証プロセスをスキップします。を押しESCて編集を終了し、 を入力し:wqて Enter を押して保存して終了します。

    [mysqld]
    skip-grant-tables
    
  • mysqldサービスを開始する

     # systemctl 启动的使用这个重新启动
    $ sudo systemctl start mysql
    
    # mac 本机,可以使用这个或可视化界面启动
    $ sudo mysql.server start
    
  • MySQLサービスにログインし、mysqladminコマンドを使用してパスワードをリセットします。

    # 无需密码,会直接登入
    $ mysql -u root  
    
    # 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    
    # 刷新权限
    mysql> FLUSH PRIVILEGES;  
    
    # 修改好后退出 MySQL
    mysql> exit
    
  • もう一度開きmy.cnf、追加した内容を削除し、サービスをskip-grant-tables保存して再起動し、新しいパスワードでログインします。MySQL

おすすめ

転載: blog.csdn.net/zz00008888/article/details/131935462