私は これらの手順 をリセットしていますrootWindows 7ラップトップへのMySQL 5.6
のローカルインストールのパスワード。
サービスを停止し、init-fileを作成し、次のコマンドを(管理者として)実行しました。
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" --init-file=C:\\MySQL-misc\\mysql-init.txt
私は次のwarningを得ました:
2014-02-08 15:44:10 0 [警告]暗黙的なDEFAULT値を持つTIMESTAMPは非推奨です。 --explicit_defaults_for_timestampサーバーオプションを使用してください(詳細についてはドキュメントを参照)。
警告なので、何かを修正してからプロセスをやり直す必要があるかどうかはわかりません。
現在、コマンドウィンドウはまだオンであり、入力を受け付けません。強制終了する必要がありますか、またはプロセスを正常に完了するためにできることはありますか?
[〜#〜] update [〜#〜]
コマンドウィンドウを強制終了し、サービスを再起動しようとしました。エラーが発生しました。
Windowsを再起動し、サービスが自動的に開始されました。 newroot password
は機能しているようです。パスワードを必要とするWorkbenchのさまざまな機能を正常に使用できました。
したがって、警告は実際には単なる警告でした。
問題はで解決されました。
私の質問で述べたように、私は MySQLマニュアルからの指示 に従いました。
プロセスは説明されたようにexactly行きませんでした(これが私の元の投稿の理由でした)が、それでも動作しました([〜#〜] update [〜#〜]を参照) 私の投稿のセクション)。
Windows:
0)サービスmysql56
をシャットダウンします
1)C:\ProgramData\MySQL\MySQL Server 5.6
に移動します。ProgramData
は隠しフォルダーです
2)ファイルmy.ini
を探して開き、skip-grant-tables
の下に[mysqld]
を1行追加し、保存します
[mysqld]
skip-grant-tables
3)サービスmysql56
を開始します
4)正しく、データベースにアクセスして、mysql
を実行できます
5)以下のクエリを使用してパスワードを更新します
update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';
注:新しいバージョンでは、password
の代わりにauthentication_string
を使用します
6)サービスを再度シャットダウンし、skip-grant-tables
行を削除して保存し、サービスを再度開始します。ログインに設定したパスワードを使用してみてください。
Macの場合:
0)サービスを停止します
Sudo /usr/local/mysql/support-files/mysql.server stop
1)付与テーブルをスキップ
Sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
一度実行したら、閉じないで、新しいターミナルウィンドウを開きます。
2)mysqlターミナルに移動します
/usr/local/mysql/bin/mysql -u root
3)パスワードを更新する
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
5.7などの新しいバージョンの場合は、
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
4)FLUSH PRIVILEGES;
を実行します
5)\q
を実行して終了します
6)mysqlサーバーを起動します
Sudo /usr/local/mysql/support-files/mysql.server start
次の行を使用して、サーバーを手動で起動します。
mysqld -P3306 --skip-grant-tables
新しいcmd(管理者として実行)実行:
mysql -P3306 mysql
Mysqlクライアントで次のクエリを実行します。
update mysql.user set authentication_string=password('new_password') where user='root';
それでおしまい!!
MySQL 5.7での変更に関する この回答 の更新:
0)サービスをシャットダウン_mysql57
_
1)_C:\ProgramData\MySQL\MySQL Server 5.7
_に移動します。ProgramData
は隠しフォルダーです
2)ファイル_my.ini
_を探して開き、_skip-grant-tables
_、saveの下に_[mysqld]
_を1行追加します
_[mysqld]
skip-grant-tables
_
3)サービス_mysql57
_を開始します
4)正しく、データベースにアクセスしてmysqlを実行できます
5)以下のクエリを使用してパスワードを更新します
update mysql.user set authentication_string=password('NEW_PASSWORD') where user='root';
6)サービスを再度シャットダウンし、_skip-grant-tables
_行を削除して保存し、サービスを再度開始します。ログインに設定したパスワードを使用してみてください。
Cmd i、eのmysql binディレクトリに移動します。 _cd C:\ProgramData\MySQL\MySQL Server 5.6\bin
_(隠しディレクトリです)
mysqld.exe --skip-grant-tables
_mysql.exe -uroot -p
_(パスワードなしでmysqlにログインできます)UPDATE mysql.user set password=password('root password') WHERE user='root';
flush privileges
_Mi.iniを編集せずに:
service mysql stop
mysqld_safe --skip-grant-tables
別のsshセッションで:
update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';
特権をフラッシュする必要はなく、サーバーを再起動するだけです
Xamppがインストールされている場合。
skip-grant-tables
_を_[mysqld]
_の下に配置しますC:\xampp\mysql\bin\mysql
_からこのコマンドをトリガーしますupdate mysql.user set password=PASSWORD('root') where user='root';
を使用してルートパスワードをリセットしますWindows上のMySQL 5.6では、このステートメントを実行して機能させる必要がありました。
UPDATE mysql.user
SET Password=PASSWORD('NEW PASSWORD'),
authentication_String=PASSWORD('NEW PASSWORD')
WHERE User='root';