クソ雑魚エンジニアのメモ帳

学んだことを書くところ

Mysql8.0+Docker+SequelProではまったこと

Mysql8.0+Docker+SequelProではまったこと

mysql8.0が今年になってリリースされました。 噂では速度が2倍速くなったらしいですね。てなことでせっかくなのでDockerで使ってみました。その知見メモ

mysql:8でイメージ取得取得した

version: '2'
services:
  # mysql
  db:
    image: mysql:8
........省略

mysqlに接続できない

どうやら、デフォルトのパスワード認証方法が変わったらしい。

my.confに以下の設定を追加した

[mysqld]
default_authentication_plugin= mysql_native_password

接続できた!

SequelProが反応しない

アプリ側でmigration書いて、runさせて、、sequelProで確認っと、、

おおおお!?どのテーブルも開くとクラッシュする!!

f:id:Kouchannel55:20180513221439p:plain

以下、吐かれたエラーログ▼

NSInvalidArgumentException

-[_NSInlineData isEqualToString:]: unrecognized selector sent to instance 0x60000062d180

(
    0   CoreFoundation                      0x00007fffbd2932cb __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x00007fffd20ac48d objc_exception_throw + 48
    2   CoreFoundation                      0x00007fffbd314f04 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
    3   CoreFoundation                      0x00007fffbd205755 ___forwarding___ + 1061
    4   CoreFoundation                      0x00007fffbd2052a8 _CF_forwarding_prep_0 + 120
    5   Sequel Pro                          0x00000001000587cd -[SPTablesList updateTables:] + 1338
    6   Sequel Pro                          0x00000001000469c5 -[SPDatabaseDocument _selectDatabaseAndItem:] + 454
    7   Foundation                          0x00007fffbec2cb3d __NSThread__start__ + 1243
    8   libsystem_pthread.dylib             0x00007fffd2baa93b _pthread_body + 180
    9   libsystem_pthread.dylib             0x00007fffd2baa887 _pthread_body + 0
    10  libsystem_pthread.dylib             0x00007fffd2baa08d thread_start + 13
)

どうやらDBがクラッシュしたわけではないようで、書き込み読み込み等はアプリ側からは正常にできているみたい。。

んー、migration前はsequelProでテーブル作成・データ追加もうまくいってたはずなのに。。。。

実験でDataGripを使ってみると問題なくテーブルが見れたし編集もできた。あっけない解決

www.jetbrains.com

推測ですが、sequelPro側で対応できていないためかな??

さすがのJetBrainさん一生ついていきます 🙇

結論

  • パスワード認証方法を忘れずに変更しましょう
  • DataGrip最強