私は自分のPC(Windows 8.1 x64)にMySQLサーバーのみを置き、Workbenchなどをインストールしたくありませんでした。だから私.zip
はdev.mysql.com/downloadsからアーカイブをダウンロードしました。x86_64バージョン5.7.9(MySQL Community Server(GPL))上のWin64のダウンロードです。
Windowsサービスとしてインストールしましたが、mysql
データベースはなく、のみでしたinformation_schema
。だから私はこれを実行しました:
mysql_upgrade.exe --upgrade-system-tables
そして、mysql
データベースが作成されました。しかし、それと同時に、ルートユーザーに何かが起こりましたmysql
。もうアクセスできなくなったからです。
そこで、突然現れたこのパスワードをリセットすることにしました(その前にパスワードを持っていなかったためです)。私は公式マニュアルに次の解決策を見つけました、私はこのようにサーバーを起動しました:
mysqld.exe --skip-grant-tables --console
次に、mysql
パスワードなしで開きました:
mysql.exe –u root
そして、ルートパスワードをリセットしようとしました:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD(‘passhere');
しかし、私はこのエラーを受け取りました:
エラー1131(42000):MySQLを匿名ユーザーとして使用しており、匿名ユーザーはパスワードを変更できません。
これは何ですか?どのように私は匿名ですか?すべてのコマンドはcmd.exe
アドミニストレーターの下で実行されました。
この状況でrootパスワードをリセットするにはどうすればよいですか?
更新1:現在のユーザーを確認しようとしました:
SELECT USER(), CURRENT_USER();
それは与える:
+--------+----------------+
| USER() | CURRENT_USER() |
+--------+----------------+
| root@ | @ |
+--------+----------------+
のように始めたので、それは奇妙mysql.exe -u root
です。
次に、ユーザーテーブルを確認しました。
SELECT user FROM mysql.user;
それは与える:
+-----------+
| user |
+-----------+
| mysql.sys |
+-----------+
それはさらに奇妙です。また、パスワードフィールドはありません。
SELECT user, password FROM mysql.user;
エラー1054(42S22):「フィールドリスト」の列「パスワード」が不明です
そのため、パスワードを変更できません。
そして、私は新しいユーザーを作成できません:
CREATE USER 'root'@'localhost' IDENTIFIED BY 'passhere';
エラー1290(HY000):MySQLサーバーは
--skip-grant-tables
オプションで実行されているため、このステートメントを実行できません
今、私は迷っています。
更新2:おそらく、最初からすべてのことを間違っていました。どうやら、mysqld.exe --initialize
どういうわけかコマンドを逃した。
したがって、これは@RolandoMySQLDBAのおかげで、.zip-archiveからMySQLをインストールする方法です。
- アーカイブを解凍し、準備し
my.ini
ます。 - 実行
mysqld.exe --initialize
し、.err
ファイルから一時パスワードを取得します。 MySQLをサービスとしてインストールして実行する
mysqld --install MySQL --defaults-file="d:/path/to/mysql/my.ini"
mysql -u root -p
仮パスワードで接続してください。一時パスワードを変更します。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';