web-dev-qa-db-ja.com

Sequel ProとMySQLの接続に失敗しました

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

brew install mysql

mysql -V

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

端末から動作し、mysqlにログインできますが、Sequel Proからは

enter image description here

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

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

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

私が行方不明になっているものを理解することはできません

53
Hattori Hanzō

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

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

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

mysql + homebrew

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

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

    default-authentication-plugin=mysql_native_password

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

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

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

動作するはずです。


my.cnf

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

122
Maciej Kwas
  1. mysql設定がない場合、次を~/.my.confにエコーします。
[mysqld]
default-authentication-plugin=mysql_native_password
  1. サインインmysql with mysql -u root -p
  2. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]';でrootユーザーのパスワードを設定します。[PASSWORD]は選択したパスワードです。
  3. 再起動mysqlbrew services restart mysql
8
Ilias Karim

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


ここにある他のすべてのソリューションは、使用しているツールのDB設定を変更することをお勧めします(MySQLによって宣伝されているように、安全性を低下させます)。それは私には受け入れられません。

私はいつもSequel Proの大ファンであり、寄付されました。しかし、私の情熱と愛を込めて、このツールにリリースがなければ申し訳ありません 2016年以降 。 YOLO、私は先に進む必要があります!

私が見つけた代替案( https://stackoverflow.com/a/55235533/2321594 、@ arcseldonのおかげ)は、 DBeaver であり、これはMySQL 8の新しい認証(非-レガシー)メソッド。

PS。 DB側ではなく、ツール側の唯一のトリックは、MySQL 8接続を作成するときに、「ドライバプロパティ」(後で[接続の編集]で見つけることができます)、allowPublicKeyRetrievalの値をtrueに変更します。

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

6
Aidin

[email protected]経由でMySQLに接続する場合は、必ずパスワードもリセットしてください!

ALTER USER 'root'@'127.0.0.1' mysql_native_password BY '[password]'で識別されました;

3
Xeno