2016-10-02 8 views
0

mysqlをインストールするとき、私はrootパスワードフィールドに何も入れませんでしたが、mysql -u rootを実行したときにまだAccess denied for user 'root'@'localhost'が見つかりました。root MySQLパスワードをヌルに設定できません

私は助成金テーブルなしでセーフモードでsudo mysql_safe --skip-grant-tables &を起動し、問題なくmysql -u rootにジャンプしました。

は、その後、私はuse mysql; update user set authentication_string=null where user='root';を行なったし、私が得た:

Query OK, 0 rows affected (0.00 sec) 
Rows matched: 1 Changed: 0 Warnings: 0 

誰でもパスワードが更新されていない理由上の任意の洞察力を持っていますか?

答えて

0

私はmysql_native_passwordにプラグインを設定する必要がありましたので、パスワードリセットの部分は次のようになります。

update user set authentication_string=password(''), plugin='mysql_native_password' where user='root'; FLUSH PRIVILEGES; 
0

あなたはそれがこの

停止MySQLサーバのようになりますステップで

FLUSH PRIVILEGES; 

ステップを忘れてしまいました。

sudo /etc/init.d/mysql stop 

mysqld設定を開始します。

sudo mysqld --skip-grant-tables & 

rootとしてMySQLにログインします。

mysql -u root mysql 

あなたの新しいパスワードであなたのパスワードを置き換えてください!

UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE User='root'; FLUSH PRIVILEGES; exit; 
+0

出力の最後の数行を見てみましょう。最後の行は '' Rows matched:1 Changed:1 Warnings:0'となります。 'FLUSH PRIVILEGES;は何も変更されていないのでここでは何もしません。また、mysql 5.7では 'password'フィールドが' authentication_string'に置き換えられました。 –

+0

はい、あなたは正しいです、私は "影響を受けた0行"を見ていませんでした。ユーザー表を選択し、表に存在するrootユーザーを表示する –

関連する問題