sql >> データベース >  >> RDS >> Mysql

CentOS7でMySQLルートアカウントのパスワードを変更するにはどうすればよいですか?

    どのバージョンのmySQLを使用していますか?私は5.7.10を使用していますが、rootとしてログオンしても同じ問題が発生しました

    2つの問題があります。最初にrootとしてログインできない理由と、「mysqld_safe」を使用してmySQLを起動してrootパスワードをリセットできない理由です。

    インストール中にrootパスワードを設定することに答えはありませんが、rootパスワードをリセットするには次のようにします

    編集 インストール時の初期rootパスワードは、

    を実行することで見つけることができます。
    grep 'temporary password' /var/log/mysqld.log
    

    http://dev.mysql.com /doc/refman/5.7/en/linux-installation-yum-repo.html

    1. systemd mysqld_safeの代わりにmySQLの管理に使用されるようになりました (これが、-bash: mysqld_safe: command not foundを取得する理由です。 エラー-インストールされていません)

    2. user テーブル構造が変更されました。

    したがって、ルートパスワードをリセットするには、mySQLを--skip-grant-tablesで開始します。 オプションを選択し、userを更新します テーブルですが、その方法が変わりました。

    1. Stop mysql:
    systemctl stop mysqld
    
    2. Set the mySQL environment option 
    systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
    
    3. Start mysql usig the options you just set
    systemctl start mysqld
    
    4. Login as root
    mysql -u root
    
    5. Update the root user password with these mysql commands
    mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
        -> WHERE User = 'root' AND Host = 'localhost';
    mysql> FLUSH PRIVILEGES;
    mysql> quit
    
    *** Edit ***
    As mentioned my shokulei in the comments, for 5.7.6 and later, you should use 
       mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    Or you'll get a warning
    
    6. Stop mysql
    systemctl stop mysqld
    
    7. Unset the mySQL envitroment option so it starts normally next time
    systemctl unset-environment MYSQLD_OPTS
    
    8. Start mysql normally:
    systemctl start mysqld
    
    Try to login using your new password:
    7. mysql -u root -p
    

    参照

    http://dev.mysql.com /doc/refman/5.7/en/mysqld-safe.html

    http://devに移動します。 .mysql.com / doc / refman / 5.7 / en / server-management-using-systemd.html ここで、systemctl set-environment MYSQLD_OPTS=について言及しています。 ページの下部に向かって。

    パスワードリセットコマンドは、 http://の下部にあります。 dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html



    1. 例を使用したOracleの一意キー

    2. 列の最大値を持つ行をフェッチします

    3. MySQLユーザーパラメータのサニタイズ

    4. データベースモデリング