web-dev-qa-db-ja.com

データベースサーバーに接続できません(mysqlワークベンチ)

この問題を解決するのを手伝ってもらえますか?

Mysqlワークベンチのデータベースメニューで[データベースのクエリ]をクリックしようとすると。それは私にエラーを与えます:

Cannot Connect to Database Server

Your connection attempt failed for user 'root' from your Host to server at 
127.0.0.1:3306:Can't connect to mysql server on '127.0.0.1'(10061)

Please:

 1. Check that mysql is running on server 127.0.0.1
 2. Check that mysql is running on port 3306 (note: 3306 is the default, but this can 
    be changed)
 3. Check the root has rights to connect to 127.0.0.1 from your address (mysql rights 
    define what clients can connect to the server and from which machines) 
 4. Make sure you are both providing a password if needed and using the correct 
    password for 127.0.0.1 connecting from the Host address you're connecting from
57
user948950

この問題は、ubuntu 16.04へのアップグレード中にパスワードが設定されていない場合、デフォルトでrootユーザーに対してソケット認証が有効になっていることが原因である可能性があります。

解決策は、ネイティブのパスワード認証に戻すことです。これを行うには、以下を実行してソケット認証を使用してMySQLにログインします。

Sudo mysql -u root

ログインしたら:

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

これにより、ネイティブ(古いデフォルト)パスワード認証に戻ります。

MySQLで必要な場合は、パスワードとしてpasswordを使用します。

52
Ayan

[スタート]メニューの検索ボックスからservices.mscを開いて、MySQLサービスを手動で開始してみてください。

41
Colin

このエラーには多くの原因があるようです。

私の原因/解決策

私の場合、原因は、ローカルホストからの接続のみを受け入れるようにサーバーが構成されていたことです。この記事に従って修正しました: MySQLデータベースサーバーへのリモートアクセスを有効にする方法my.cnfファイルにはskip-networking行がなかったので、行を変更しました

bind-address = 127.0.0.1

bind-address = 0.0.0.0

これにより、127.0.0.1だけでなく、あらゆるIPからの接続が可能になります。

次に、次のターミナルコマンドを実行して、クライアントマシンから接続できるMySqlユーザーを作成しました。

# mysql -u root -p
mysql> CREATE USER 'username'@'1.2.3.4' IDENTIFIED BY 'password';
    -> GRANT ALL PRIVILEGES ON *.* TO 'username'@'1.2.3.4' WITH GRANT OPTION;
    -> \q

ここで、1.2.3.4は接続しようとしているクライアントのIPです。本当に問題がある場合は、'%'の代わりに'1.2.3.4'を使用して、ユーザーが任意のIPから接続できるようにすることができます。

その他の原因

かなり広範なリストについては、「 アクセス拒否エラーの原因 」を参照してください。

27
AJ Richardson

これがWorkbenchの問題なのか、一般的な接続の問題なのかを判断しようとしましたか?これを試して:

  1. ターミナルを開く
  2. タイプmysql -u root -p -h 127.0.0.1 -P 3306
  3. 接続に成功した場合は、パスワードを入力した後にmysqlプロンプトが表示されます(quitを入力して終了するにはEnterキーを押します)。

これがどのように機能したかを報告してください。

17
Sergio

Mac OSで同様の問題があり、この方法で修正できました。

ターミナルから、次を実行します。

mysql -u root -p -h 127.0.0.1 -P 3306

次に、パスワードの入力を求められました。パスワードが設定されていないため、enterを押しました。

次のようなメッセージが表示されました。

MySQLモニターへようこそ。コマンドの末尾は;または\ g。 MySQL接続IDは181です。サーバーバージョン:8.0.11 Homebrew。

Mysql>へのログインに成功した場合は、次のコマンドを実行します。

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

次のようなメッセージが表示されます。

クエリOK、影響を受ける行はありません(0.19秒)

これで、パスワードは「password」であり、ユーザー名は「root」です。

ハッピーコーディング:)

11
almawhoob

Workbenchを管理者として起動する必要がありました。どうやら、localhostデータベースサーバープロセスに接続するために必要な権限がなかったようです。

ワークベンチのショートカットを右クリックして、Run as Administratorを選択します。ショートカットの[プロパティ]ウィンドウで、[詳細設定]をクリックし、[管理者として実行]の横のボックスをオンにして、常に管理者権限でワークベンチを実行できます。

7
Steven Ryssaert

私はしばらくの間この問題に苦労し、これを発見する前にMySQLを何度か再インストールしました。

コマンドラインを使用してすべてのDBにアクセスできるため、MySQLサーバーが正常に実行されていたことがわかります。

これがあなたのために働くことを願っています。

MySQL Workbench(5.2.47 CE)

サーバーインスタンスの管理(右下隅)をクリックします

接続をクリックします

接続ボックスで選択:

ローカルインスタンス($ ServerName)[email protected]:3306 '<' Standard(TCP/IP)>

選択を編集...をクリックします

Parameters、Hostname change localhostまたは127.0.0.1をNetBIOS名に変更

接続のテストをクリックします

これがあなたのために働くなら、素晴らしい。ホスト名を元の名前に戻さない場合。

4
KuBand12

このエラーは、mysqlサーバーがコンピューターで起動していないために発生します。手動で起動する必要があります。次の手順を実行します。

  1. ご使用のコンピューターのビットバージョン(32ビットまたは64ビット)に従ってwampサーバーをダウンロードしてインストールします( http://wampserver-64bit.en.softonic.com/ )このリンクにより、wampサーバーをダウンロードできます64ビット。

  2. インストールするとすぐに、ダブルクリックして実行できます(タスクバーの右側にアイコンが表示されます。非表示になる場合があります。実行中のアプリを非表示にする矢印をクリックできます)。アイコンをクリックして、Mysqlに移動します

  3. 次にServiceに移動すると、サービスの開始/再開クリックします。

  4. これで完了です。mysqlワークベンチを開いて確認してください。動作します。

4
Sanjaya

ALTER USERコマンドを実行します。パスワードは必ず選択した強力なパスワードに変更してください。

1-Sudo mysql # Login to mysql

2-#Run the below command

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

これで、新しいパスワードを使用してアクセスできます。

参照: https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04

3

上位バージョンとそれ以降の訪問者のために最新の状態にするには:

現在、Google pythonの前提条件としてAndroid 2.7.4を含むさまざまなツールを備えたwin7 64ビットに取り組んでいます...

WB 6.0.8-win32から64ビットのパフォーマンスを得るために上位バージョンにアップグレードしたとき、たとえば6.3.5-winx64でいくつかの問題が発生しました。テーブルの詳細ビュー(障害ビュー)にバグがあり、6.2にダウングレードしました。 5-winx64。

GUIユーザーとして、簡単なフォワード/バックワードエンジニアリングとdbサーバーの相対アイテムはうまく機能していましたが、Database>Connect to Databaseを実行しようとするとNot connectedが発生し、DBサーバーでクエリを実行しようとするとpythonエラーが発生しますサービスは完全に実行され、正常に機能しています。この問題はサーバーからではなく、ワークベンチから発生しています。それを解決するには、Query>Reconnect to Serverを使用して明示的にDB接続を選択する必要がありますが、ほとんどすべてが正常に見えます(これは複数のdb接続が原因であり、ワークベンチでデフォルトのdb接続を定義するためのソリューションが見つかりませんでした)。

注:最新のXamppバージョンを使用しているため(Linuxでも中毒的です:))、最近Xamppはmysql 5.xの代わりにmariadb 10を使用するため、mysqlファイルのバージョンが10になり、プロシージャのフォワードエンジニアリングなどの問題が発生する可能性がありますこれはmysql_upgrade.exeを介して解決できますが、db接続を確認しようとすると、wbは間違ったバージョンを通知しますが、重要ではなく、適切に機能します。

結論:したがって、ワークベンチでのdb接続の問題は、サーバーではなくそれ自体に起因する場合があります(他のdb接続に関連する問題がない場合)。

1
Alix

以前と同様の状況にあり、前回Windowsの更新の問題であることがわかりました(不明)。今回、MySQLワークベンチを開いたところ、ローカルデータベースへの接続が見つかりませんでした。テーブルは表示されませんが、昨日データベースに接続できました。

私の原因は、コンピューターをしばらくスリープ状態にしてから再びスリープ解除した後、mysqlサービスが実行されていないことであることがわかりました。私の解決策:「mysql」という名前のサービスを再起動し、ワークベンチを再実行します。サービスの再起動には時間がかかりますが、機能します。

0
WesternGun

私の理由は、最新のMySQL Workbench 8. *を使用してMySQL Server 5.1(両方ともWindows Server 2012で実行)に接続しようとしたためです。 MySQL Workbench 8. *をアンインストールし、MySQL Workbench 6.3.10をインストールすると、localhostデータベースに正常に接続されました

0
alex

私の場合、mysqlworkbenchをインストールしたばかりですが、mysqlworkbenchをアンインストールし、MySQLインストーラーをインストールした後、32ビットと64ビットの両方で同じように動作します。役に立つといいな

0
Shaik Elias

私の問題は、MySQLサーバーが実際にインストールされていないことでした。 MySQLインストーラーを実行しましたが、MySQLサーバーをインストールしませんでした。

インストーラを再実行し、「追加」をクリックして、MySQLサーバーをリストに追加しました。今では正常に動作します。

0
Pikamander2

また、私はこの問題にかなり長い間苦労しました。

私はこれに遭遇しました MySQLフォーラムからの興味深いスレッド:http://forums.mysql.com/read.php?11,11388,11388#msg-11388

また、(明らかに)良いSO Q/Aに出くわしました。

「user948950」の質問に記載されているメッセージは、ログファイルが大きすぎる、mysql.iniファイルの値が正しくない、ファイルパスのスペース、セキュリティ/ aclの問題、レジストリなど。

だから、これを修正するために3時間試みた後...私は放棄し、古き良き再インストールを行うことにしました。

これが (この)このMySQLスレッドからのこの投稿が役に立ちました で、引用しています:

ゲイリー・ウィリアムズは次のように書いています。

私はまったく同じ問題を抱えており、これが私がそれを機能させる方法であり、動作しないインストールから始めます。

  1. 既存のmysqlインストールのWindowsサービスを停止します。

  2. Mysqlをアンインストールします。

ほとんどのアンインストールと同様に、古いファイルは残されます。ディレクトリがC:\ mysql \などの場合は、innobなどのファイルを削除しますが、ディレクトリ自体と「data」内の既存のデータベースはそのままにします。ディレクトリがC:\ Program Files \などの場合、すべてのmysqlディレクトリを削除します。

  1. これで、regeditを実行して、アンインストールによって古いレジストリエントリも削除されるようにする価値があります。そうでない場合は、削除します。

  2. 新しい.msiインストーラー(必須ファイルのみ)を使用しても問題ありませんが、....

  3. デフォルトのインストールパスを使用しないでください!一部の天才は、スペースを含むパスを設定します!カスタムインストールを選択し、適切なパス、つまりC:\ mysqlを選択します(Adrienからの注意:C:\ mysqldata for ...データ)

  4. セキュリティ設定の変更を選択しないでください。関連するボックスのチェックを外すと、rootパスワードを設定せずにインストールが完了します。

私はすべてを覚えていると思います。

がんばろう

ゲイリー

以前の「data」ディレクトリにあったデータベースを新しいディレクトリにコピー/ペーストするだけで問題が発生しました。そのため、私が見つけた回避策は、各データベースをエクスポートし(知っている...とても楽しい)、それらを1つずつ再インポートすることでした。

参考:次のコマンドを使用してC:/<MySQLInstallDir>/My SQL Server x.x/bin/mysql -u root -p <dbName> < "<dirPathOfDump>\<dumpName>.sql"をインポートしました。たとえば、C:/mysql/MySQL Server 5.6/bin/mysql -u root -p mySupaCoolDb < "C:\mySupaCoolDbDump20130901.sql"

0
Adrien Be