10

LinuxサーバーにMySQLがインストールされていますが、パスワードを忘れたので、Webで見つけた方法を使用して変更しました。私がしたことは次のとおりです。

/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql --user root mysql
SELECT * FROM user; // I checked if I could access the user table or not
update user SET password = PASSWORD('new_pass') WHERE user = 'root';
flush privileges;
exit

更新クエリは、影響を受ける行数やクエリ OK などを示したため、パスワードを変更しました。

次に、mysqlを再起動しました

/etc/init.d/mysql stop
/etc/init.d/mysql start

今、新しいパスワードでログインしたとき

mysql -u root -p new_pass

それでも 「エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用: はい)」というエラーが表示されます。

私が見逃しているものはありますか?

4

10 に答える 10

7

パスワードをリセットする必要があります。Mac osx(テスト済みおよび動作中)およびubuntuの手順

MySQL を停止する

$ sudo /usr/local/mysql/support-files/mysql.server stop

セーフ モードで起動します。

$ sudo mysqld_safe --skip-grant-tables

(上記の行はコマンド全体です)

これは、プロセスが終了するまで進行中のコマンドになるため、別のシェル/ターミナル ウィンドウを開き、パスワードなしでログインします。

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

MySQL を起動

sudo /usr/local/mysql/support-files/mysql.server start

新しいパスワードは「password」です。

于 2014-11-12T01:56:02.587 に答える
3

Mac OS では、以下の手順に従ってください。

MySQL を停止する

$ sudo /usr/local/mysql/support-files/mysql.server stop セーフ モードで起動します。

$ sudo mysqld_safe --skip-grant-tables (上記の行はコマンド全体です)

これは、プロセスが終了するまで進行中のコマンドになるため、別のシェル/ターミナル ウィンドウを開き、パスワードなしでログインします。

$ mysql -u ルート

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root'; MySQL を起動

sudo /usr/local/mysql/support-files/mysql.server start 新しいパスワードは「password」です。

于 2016-01-27T07:12:32.227 に答える
3

私は同じ問題に遭遇しました

私の問題は、最初のフィールドの代わりにssl_typeではありません:<strong>Host. を使用して値を変更しました

update user set Host='localhost' where User='root' and Host='%';

mysqld_safe --skip-grant-tablesモデルで。

それからそれはうまくいきます。

于 2015-07-13T11:42:45.047 に答える
2

私の場合:

  1. /etc/init.d/mysql 停止
  2. mysqld_safe --skip-grant-tables &

(新しいウィンドウで)

  1. mysql -u ルート
  2. mysql> mysql を使用します。
  3. mysql> update user set authentication_string=password('password') where user='root';
  4. mysql>フラッシュ特権;
  5. mysql>終了
  6. /etc/init.d/mysql 再起動
于 2016-06-22T09:25:26.967 に答える
0

実際、mysql データベースのユーザー テーブルを詳しく調べたところ、以前にユーザー ルートの ssl_type フィールドを SSL に編集した人がいたことがわかりました。

そのフィールドを編集してmysqlを再起動したところ、うまく機能しました。

ありがとう。

于 2013-10-24T05:35:50.183 に答える
-1

この解決策を試すことができます:-

mysql にパスワードを要求させるには、-p オプションも指定する必要があります (-p とパスワードの間にスペースを入れてみてください)。

mysql -u root -p new_password

MySQLl アクセスが拒否されました

2 番目のリンクでは、誰かが同じ問題についてコメントしています。

于 2013-10-23T05:59:45.433 に答える