web-dev-qa-db-ja.com

ユーザー 'root' @ 'localhost'のユーザーrootアクセスが拒否され、127.0.0.1:3306でmysqlに接続できませんでした(パスワード:YESを使用)

ワークベンチで新しいデータベース接続を作成しようとしています。ただし、接続をテストするたびに、エラーメッセージが表示されます

ユーザー 'root' @ 'localhost'のユーザーrootアクセスが拒否され、127.0.0.1:3306でmysqlに接続できませんでした(パスワード:YESを使用)

このエラーの原因はわかりません。ワークベンチ6.1とmysqlサーバー5.6をアンインストールして再インストールしようとしましたが、エラーはまだ解決されていません。

34
cpl

まず、ワークベンチまたは接続の問題かどうかを確認します。

1)Windowsで「cmd」を実行してターミナルを開きます

両方試してください

2a)mysql -u root -p -h 127.0.0.1 -P 3306

2b)mysql -u root -p -h > localhost -P 3306

3)接続が良好な場合、パスワードプロンプトが表示されます。正しいパスワードで接続できるかどうかを確認してください。

接続が拒否された場合は、許可を与えるだけです

mysql >GRANT ALL ON [DatabaseName].* TO 'root'@'127.0.0.1' IDENTIFIED BY '[PASSWORD]';

ここで接続が受け入れられる場合、それはワークベンチ構成の問題のようなものです。

30
ydoow

同じ問題がありました。
Ubuntuに新しいmysqlをインストールしましたが、mysqlのパスワードを空のままにしたため、mysqlに接続できませんでした。
最近、名前、ホスト、パスワード、およびいくつかのプラグインがあるユーザーのテーブルがあることを明らかにしました。したがって、インストール中のユーザーroot @ localhost mysqlにはauth_socketというプラグインが割り当てられ、Unixユーザー「root」はパスワードなしでmysqlユーザー「root」としてログインできますが、別のユーザーとしてのログインは許可されませんUnixユーザー。それを修正するには、このプラグインをオフにして、通常の認証を設定する必要があります。

  1. linuxターミナルを開く
  2. 入力 "Sudo mysql"
    「mysql>」と表示されます。これは、「root」Unixユーザーとしてmysqlに接続し、SQLクエリを入力できることを意味します。
  3. sQLクエリを入力して、ログイン方法を変更します。
    「your_new_password」によりmysql_native_passwordで識別される変更後のユーザー「root」@「localhost」;
    「mysql_native_password」は、auth_socketプラグインをオフにすることを意味します。
10
Vladimir Voznyi

これを試して、それは私のために働いた!

Sudo mysql -u root -p

ターミナル内で次を入力します。

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

次に、MySQL Workbenchで接続を編集し、ルート名をadminに変更します。

4
Diogo Quaresma

MySQL 5.7(およびそれ以降のバージョン)を実行しているUbuntuシステムでは、ルートMySQLユーザーは、パスワードではなくauth_socket pluginを使用して認証するように設定されています。これにより、多くの場合、セキュリティとユーザビリティが向上しますが、外部プログラム(phpMyAdminなど)がユーザーにアクセスすることを許可する必要がある場合にも事態が複雑になる可能性があります。

MySQLにrootとして接続するときにパスワードを使用する場合は、認証方法をから切り替える必要があります。 auth_sockettomysql_native_passwordソース

ターミナルからMySQLプロンプトを開きます。

$ Sudo mysql

次に、次のコマンドを使用して、各MySQLユーザーアカウントが使用する認証方法を確認します。

mysql > SELECT user,authentication_string,plugin,Host FROM mysql.user;

Rootユーザーが実際にauth_socketプラグインを使用して認証を行うことがわかります。パスワードで認証するようにルートアカウントを構成するには、次のALTER USERコマンドを実行します。パスワードは、必ず選択した強力なパスワードに変更してください。

mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

次に、FLUSH PRIVILEGESを実行します。これは、サーバーに許可テーブルを再ロードし、新しい変更を有効にするように指示します。

mysql > FLUSH PRIVILEGES;

各ユーザーが使用する認証方法を再度確認して、auth_socket pluginを使用してルートが認証されなくなったことを確認します。

mysql > SELECT user,authentication_string,plugin,Host FROM mysql.user;

出力では、ルートMySQLユーザーがパスワードを使用して認証されるようになります。

4
Eric Korolev

これがどのように起こったのか分かりませんが、私は同じ問題を抱えていました。ルートパスワードをリセットする必要がありました: http://www.jovicailic.org/2012/04/reset-forgotten-mysql-root-password-under-windows/

しかし、私が以前に持っていたデータベースが削除されたか、新しい接続がそれらに接続しませんでした。いずれにしても、ワークベンチ経由でアクセスできませんでした。しかし、MySQLを再び使用することができました。

3
J Seaton

私は今この問題に遭遇しましたが、いくつかの試行で訪問サービス>> MySQLxxサービスを選択し、右クリックして開始をクリックします

3
CriminalDuck

Localhostでホストするmysqlサーバーをインストールする必要があります。次に、ワークベンチをインストールします。それでもエラーGOTOが表示される場合:

(MACの場合:)

システム環境設定> Mysql(下部にリストされます、他のサーバーはマシンにインストールされていません)。

サーバーの状態を確認し、Mysqlサーバーを起動します。

デフォルトのポート番号でローカルホストに接続してみてください。

これを試して、

これがお役に立てば幸いです

  1. インストーラーを含むすべてを、独自のアンインストールオプションからアンインストールしました。
  2. Mysqlに関連する何らかの方法であったすべてのプログラムをアンインストールしました
  3. C:\ Program Filesからmysqlフォルダーを削除しました
  4. C:\ ProgramDataからmysqlフォルダーを削除しました
  5. レジストリをクリアしてからプログラムを再インストールしましたが、すべて無駄になりました。

繰り返す方法:ここで私がやったことです:

  1. Mysql-installer-web-community-5.6.23.0.msiでインストールした
  2. 目的のために、MySQLサーバー5.6.22で「カスタム」インストールを選択しました-X64およびMySQLコネクター->コネクターODBC/5.3.4-64
  3. 次->実行 設定可能)->次
  4. 構成タイプ:開発マシン、すべてデフォルト(TCP/IP、ポート:3306、ファイアウォールを開く)
  5. MySQLルートパスワードを入力
  6. MySQLユーザーアカウント->ユーザーの追加(ユーザー名、パスワード、OK)->次へ
  7. MySQLサーバーをWindowsサービスとして構成する(チェック済み)
  8. Windowsサービス名:MySQL56(デフォルト)
  9. システムの起動時にMySQLサーバーを起動する
  10. これIS CRUCIAL(BUG IS HERE):サービスを実行...標準システムアカウント(チェック済み-無視されますが、それはバグです)
  11. 次->実行、インストールはサーバーの起動時にハングアップするので、タイムアウトするまでしばらく待ちます(または選択しないでください)。ダイアログ(他のウィンドウで覆われている可能性があります)がポップアップし、「MySQL Serverの構成に予想以上に時間がかかっています...」というメッセージが表示されたら、[OK]をクリックします。

推奨される修正:12.その間、[スタート]-> [コントロールパネル]-> [管理ツール]-> [サービス]-> [MySQL56]を右クリック-> [プロパティ]-> [ログオン]タブを選択し、ISバグを選択->ローカルシステムアカウントが選択されたが、どういうわけか「このアカウント:ネットワークサービス(パスワード付き)が選択された->ログオン:ローカルシステムアカウントを選択し、デスクトップとの対話をサービスに許可->適用->全般タブに戻る

  1. [全般]タブで[開始]ボタンをクリックしてサービスを開始します。サービスが開始されました! [OK]をクリックして、[MySQL56プロパティ]ダイアログを閉じます。 [サービス]ダイアログを閉じます。管理ツールを閉じます。コントロールパネルを閉じます。

  2. そして、その時間までに(これらのダイアログを閉じていた間に)MySQl Installer Dialogを見ると、すべてのステップが完了してチェックされています:サーバーの起動、セキュリティの適用...ユーザーアカウントの作成..スタートメニューリンクの更新

  3. 完了で確認->次->完了

ソース:---(https://bugs.mysql.com/bug.php?id=76476

1
Venkat Kallem

私はこれが古いことを知っていますが、私はこの問題に出くわしましたが、私のために働いたこの修正を見つけました:

  1. 「サービス」に移動します
  2. 「名前」の下でユーザー名を見つけます
  3. 右クリックして「開始」を選択します

MySQLワークベンチに移動し、「INSTANCE」の下の「Startup/Shutdown」を選択すると、準備完了です。これがこれに出くわした人を助けることを願っています。

0
Adan De Leon

Windowsの検索バーに移動して、Servicesを検索します。 Servicesを起動してMySQLxxxxを探しますサービスの長いリストで、MySQLのバージョンによって異なります。 右クリック MySQLxxでヒット開始。これでMySQLは正常に動作するはずです。

0
jseahhh