18

ローカルの Windows ボックスで MySQL 5.x を実行していますが、MySQL 管理者を使用すると、ルート アカウントを使用して作成したデータベースに接続できません。私が得るエラーは次のとおりです。

MySQL エラー番号 1045 ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用: YES)

root アカウントの資格情報を変更したことを思い出せませんが、LAN 上の他のコンピューターに IP を追加してデータベースへのアクセスを許可しようとしたことは知っています。IP の 1 つに対して私が行ったことの 1 つは、 の'root'代わりにアカウントへのアクセスを指定することでしたroot。つまり、ルートを単一引用符で囲みました。すべてMySQL管理者を使用しています。これが、root を使用してログインできない理由でしょうか?

また、root アカウントを新規作成またはリセットする方法はありますか? 前述のように、私は自分のボックスに完全にアクセスできます。

これらの質問を参照してください

4

5 に答える 5

21

初期化ファイルを使用できます。root パスワードのリセット方法に関する MySQL の公式ドキュメントを確認してください(代替ソリューションのコメントを含む)。

したがって、基本的には init ファイルを使用して、アクセスを修正するために必要な SQL クエリ ( 、 、 など) を init ファイル (任意のファイル) に追加GRANDできCREATEますFLUSH PRIVILEGES

root アカウントを回復する例を次に示します。

echo "CREATE USER 'root'@'localhost' IDENTIFIED BY 'root';" > your_init_file.sql
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;" >> your_init_file.sql 
echo "FLUSH PRIVILEGES;" >> your_init_file.sql

ファイルを作成したら、次を実行できます。

killall mysqld
mysqld_safe --init-file=$PWD/your_init_file.sql

次に、これが機能したかどうかを確認するには、次を押しCtrl+Zて入力bgします。プロセスをフォアグラウンドからバックグラウンドで実行し、次の方法でアクセスを確認します。

mysql -u root -proot
mysql> show grants;
+-------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' |

以下も参照してください。

于 2010-12-09T20:39:46.603 に答える
1

MySQL のマニュアルには、問題を解決するroot パスワードをリセットする方法に関するセクションがあります。

于 2009-03-13T09:51:05.847 に答える
1

rootでmysqlにアクセスすると同じ問題が発生しました。私が見つけた問題は、一部のデータベース ファイルが、mysql サーバー デーモンを開始したユーザーである mysql ユーザーによるアクセス許可を持っていないことです。

ls -l /var/lib/mysqlmysql ユーザーが一部のファイルまたはディレクトリに対する読み取りまたは書き込みのアクセス許可を持っていない場合は、コマンドでこれを確認できます。これにより、問題が発生する可能性があります。コマンドを使用して、これらのファイルまたはディレクトリの所有者またはモードを変更できchown/chmodます。

これらの変更後、mysqld デーモンを再起動し、次のコマンドを使用して root でログインします。

mysql -u root

次に、パスワードを変更するか、mysql にログインするための他のユーザーを作成します。

HTH

于 2013-03-20T18:06:32.650 に答える