Can't connect to MySQL 8 using Sequel Pro, now what?
If you are a fan of Sequel Pro, you probably have seen these errors while trying to connect to MySQL 8:
NSInvalidArgumentException
-[_NSInlineData isEqualToString:]: unrecognized selector sent to instance 0x60802d051c10
(
0 CoreFoundation 0x00007fff921d0e7b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00007fffa6dbbcad objc_exception_throw + 48
2 CoreFoundation 0x00007fff92252cb4 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3 CoreFoundation 0x00007fff92142fb5 ___forwarding___ + 1061
4 CoreFoundation 0x00007fff92142b08 _CF_forwarding_prep_0 + 120
5 Sequel Pro 0x000000010002fce3 -[SPDatabaseDocument setDatabases:] + 783
6 Sequel Pro 0x000000010002f2a9 -[SPDatabaseDocument setConnection:] + 610
7 Foundation 0x00007fff93baa88a __NSThreadPerformPerform + 326
8 CoreFoundation 0x00007fff92166981 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
9 CoreFoundation 0x00007fff92147a7d __CFRunLoopDoSources0 + 557
10 CoreFoundation 0x00007fff92146f76 __CFRunLoopRun + 934
11 CoreFoundation 0x00007fff92146974 CFRunLoopRunSpecific + 420
12 HIToolbox 0x00007fff916d2acc RunCurrentEventLoopInMode + 240
13 HIToolbox 0x00007fff916d2901 ReceiveNextEventCommon + 432
14 HIToolbox 0x00007fff916d2736 _BlockUntilNextEventMatchingListInModeWithFilter + 71
15 AppKit 0x00007fff8fc78ae4 _DPSNextEvent + 1120
16 AppKit 0x00007fff903f321f -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2789
17 AppKit 0x00007fff8fc6d465 -[NSApplication run] + 926
18 AppKit 0x00007fff8fc37d80 NSApplicationMain + 1237
19 Sequel Pro 0x0000000100002454 start + 52
20 ??? 0x0000000000000001 0x0 + 1
)
Or
Unable to connect to host 127.0.0.1, or the request timed out.
Or it crashes immediately…
Especially when homebrew
updated to MySQL 8 recently, it seems impossible to use Sequel Pro to connect to MySQL 8 installed by homebrew. See this issue: #3089
There are two reasons for this:
- From MySQL 8.0 Oracle has changed the meta data column so Sequel Pro has failed when parsing the result.
- MySQL 8.0 uses caching_sha2_password default, which is not supported by the older versions of libmysqlclient (Sequel Pro is using libmysqlclient version 5.5)
This is a known issue in Sequel Pro that has been reported since early this year and the community has been requesting MySQL 8 support repeatedly, in the issue #2699 for instance. But until now, there’s still no sign of implementation of a fixed build. See the response from the Sequel Pro team in this issue:
Side note: Support for caching_sha2_password will probably not happen anytime soon.
Sequel Pro currently uses the 5.5 MySQL client library and this plugin is only included with the most recent 8.0 library.
Since there may be internal changes between those versions and we made some customizations ourselves, we have to go 5.5 -> 5.6 -> 5.7 -> 8.0 and check compatibility at each step.
But not even the switch to 5.6 is scheduled for the next release.
If you are having a number of production databases using MySQL 8, chances are, you already missed some deadlines due to this broken development environment.
So, if you don’t want to get on the queue and wait for the next stable release which nobody knows when, TablePlus can be a good alternative to Sequel Pro at the time.
It’s free
, native
, and has a very quick development cycle
which always supports the latest version of MySQL, including MySQL 8.
Check it out: Download TablePlus