SequelProとMySQLの接続に失敗しました


97

HomebrewからMacにmysqlをインストールしました

brew install mysql

mysql -V

mysql  Ver 8.0.11 for osx10.13 on x86_64 (Homebrew)

ターミナルからは動作し、mysqlにログインできますが、SequelProからは

ここに画像の説明を入力してください

ホスト127.0.0.1に接続できないか、要求がタイムアウトしました。

アドレスが正しく、必要な権限があることを確認するか、接続タイムアウト(現在は10秒)を増やしてみてください。

MySQLによると:認証プラグイン 'caching_sha2_password'をロードできません:dlopen(/usr/local/lib/plugin/caching_sha2_password.so、2):画像が見つかりません

私が欠けているものを理解することはできません

回答:


185

これは、エラーが示すように、SequelProが新しい種類のユーザーログインの準備がまだできていないためです。ドライバーがありません。自作以外のインストールのクイックフィックス:

Apple Logo > System Preferences > MySQL > Initialize Database、次に新しいパスワードを入力し、[レガシーパスワードを使用する]を選択します

再起動後、接続できるようになります。そうしないとデータベーステーブルが失われる可能性があるため、新規インストールでのみ実行してください。

mysql +自作

基本的に、いくつかのアクションを手動で実行する必要がありますが、上記のソリューションのようにデータベースデータが削除されることはありません

  • my.cnfファイルに移動し、セクション[mysqld]に次の行を追加します。

    default-authentication-plugin=mysql_native_password

  • ターミナルからmysqlサーバーにログインします。実行してmysql -u root -pから、シェル内で次のコマンドを実行します([password]を実際のパスワードに置き換えます)。

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

  • でmysqlシェルを終了しexit、を実行しbrew services restart mysqlます。

動作するはずです。


my.cnf

my.cnfファイルは、Unix / Linuxの/etc/my.cnfにあります。

代替案

Sequel Proの問題にまだ苦労している人のために:Sequel Proは素晴らしい製品でしたが、未解決の問題がたくさんあり、最後のリリースは2016年のものであるため、いくつかの代替案を探すことをお勧めします。SequelAceと呼ばれるSequelProのフォークがあり、かなり安定していて最新のようです。同様の機能、同様のルックアンドフィールを維持しながら、同時に古いSequelProの問題はありません。

14
システム環境設定でMySQLが見つかりません
服部正成2018

2
説明してくれてありがとう、でもmy.cnf私のマシンでファイルが見つかりません(macOS High Sierra 10.13.5)
服部正成

2
そのようなファイルが存在しない場合、あなたは1作成する必要があります:、このスレッドを見ていてください。stackoverflow.com/questions/7973927/...
マチェイKwas

14
これは、新鮮なbrew install mysql使用で/usr/local/etc/my.cnf
うまく機能

5
私が使用したので、私は、パスワードを使用していないALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';-これは私のために働いた
ヴィンセント唐

36

TL; DR:Sequel Proは2016年から廃止されています。ツールのために、DBをダウングレードしないでください。別のツールに移動します。

アップデート2020:Sequel Proは公式には死んでいますが、非公式には生きています!この問題がない(つまり、Mysql 8認証をサポートする) 「ナイトリー」ビルドは、https//sequelpro.com/test-buildsにあります。


ここにある他のすべてのソリューションは、使用しているツールのDB設定を変更することを推奨しています(MySQLによってアドバタイズされるように、安全性を低くします)。それは私には受け入れられません。

私は常にSequelProの大ファンであり、寄付もしてきました。しかし、私の情熱と愛情を込めて、2016年以降にツールのリリースがない場合は申し訳ありません。YOLO、そして私は先に進む必要があります!

私が見つけた代替手段(https://stackoverflow.com/a/55235533/2321594から、@ arcseldonのおかげで)は、MySQL 8の新しい認証(非レガシー)メソッドをサポートするDBeaverです。

PS。DB側でなく、ツール側での唯一のトリックは、 MySQL 8接続を作成するときに、「ドライバのプロパティ」(後で「接続の編集」にあります)に移動し、の値をに変更allowPublicKeyRetrievalする必要がある場合がありますtrue

Dockerを使用して作成したMySQLコンテナに接続するためにこれが必要でした。MySQLのIPを外部に表示するには、エコシステム内の他のアプリケーション(このツールだけでなく)について、MySQLで新しいユーザーを作成するか-e MYSQL_ROOT_HOST=%、ランタイムまたはENVとして渡す必要があります。


私の答えがOPの問題を解決しないという理由だけで、@ Aidinが私に反対票を投じたと思います。それはただのローカル開発とローカル設定です-それで、ポイントは何ですか?私は本当に慣れ親しんだソフトウェアを離れる必要があり、あなたがそう言うからといって一緒に仕事をするのが好きですか?
MaciejKwas19年

5
@MaciejKwasを個人的に受け取らないでください。ここでより多くの説明を提供しているにもかかわらず、私は感謝していますが、私はまだ私の投票を支持しています。3つの主な理由は次のとおりです。1)dev / prod間で異なるセットアップを維持することは、最新のソフトウェア開発では推奨されません。実際、これは12factor.net/dev-prod-parityのファクターXです。2)人々はこれらのツールを使って製品をチェックすることもできます。ssh-tunnel / proxyを作成し、GUIツールを介してprodDBにアクセスできます。このような場合、DB認証をダウングレードすることはできません。3)変更やアップグレードに適応しないことは、私が個人的に評価していないことです。
エイディン

1
私はMySQLプロジェクトに戻ってきました。数年前にローカルで実行していませんでした。それは堅実で、続編のプロが死んでいることを知ってとても悲しいです:(
Catfish

また、複数のドライバーから選択できるため、DBeaverでMySQL + 8ドライバーを選択します。ドライバのプロパティで、allowPublicKeyRetrievalをtrueに設定して保存します。
Peheje

18
  1. mysql構成がないと仮定して、以下をエコーし​​ます。~/.my.conf
[mysqld]
default-authentication-plugin=mysql_native_password
  1. mysqlにサインインしますmysql -u root -p
  2. rootユーザーのパスワードを設定します。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]';ここで、[PASSWORD]は選択したパスワードです。
  3. たとえば、mysqlを再起動しますbrew services restart mysql

9

Sequel Proは正式に廃止され、新しいMySql機能をサポートしなくなりました。しかし、良いニュースは、それが置き換えられたことがあるの続編エースで提供されていますGitHubのApp Storeで。このアプリは無料で、Sequel Proの共同編集者の1人が投稿したため、SequelProの正式な代替品のように見えます。

追伸 Sequel Proの最新の代替品があると他の人が言及していないので、これを回答として投稿することにしました


ニュースをありがとう、大いに感謝します。
服部半蔵

最終的に!しばらく待っていました。
ジョニー

6

root@127.0.0.1経由でMySQLに接続する場合は、パスワードもリセットしてください。

ALTER USER'root '@' 127.0.0.1 'IDENTIFIED WITH mysql_native_password BY' [password] ';


私が得ているもの:ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 50, found 49. Created with MySQL 80012, now running 80013. Please use mysql_upgrade to fix this error.
チャンススミス

ターミナルでこれを試してみてください。 mysql_upgradeコマンド--force -uroot -p
Xenoの

mysql_upgradeは非推奨になり、機能しなくなりました。代わりにmysqld --upgrade = FORCEを使用してください。
ilovecookiez 1119


1

それは私のために働いています。このエラーが発生した場合:

ホスト127.0.0.1に接続できないか、要求がタイムアウトしました。

アドレスが正しく、必要な権限があることを確認するか、接続タイムアウト(現在は10秒)を増やしてみてください。

MySQLによると:認証プラグイン 'caching_sha2_password'をロードできません:dlopen(/usr/local/lib/plugin/caching_sha2_password.so、2):

Plzはこのソリューションを試してください

ここに画像の説明を入力してください


チャームのように働いた。
ジミーアダロ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.