Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need MySQL 8.0 support #2699

Open
mpyw opened this issue Feb 22, 2017 · 68 comments
Open

Need MySQL 8.0 support #2699

mpyw opened this issue Feb 22, 2017 · 68 comments

Comments

@mpyw
Copy link

mpyw commented Feb 22, 2017

It crashes immediately...

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
)
@dmoagx
Copy link
Member

dmoagx commented Feb 23, 2017

The causing query here is SHOW DATABASES

Mysql 8.0 describes the returned column ("Databases") as:

type=MYSQL_TYPE_VAR_STRING
flags=4225
// 0001 000 1000 0001
//                  ^-- NOT NULL
//          ^---------- BINARY
//    ^---------------- NO DEFAULT
charsetnr=33 
// Sequel Pro: {
//		33,
//		"utf8",
//		"utf8_general_ci",
//		"UTF-8 Unicode"
//	},

whereas MySQL 5.5 describes it as:

type=MYSQL_TYPE_VAR_STRING
flags=4225
// 0000 000 0000 0001
//                  ^-- NOT NULL
charsetnr=33
// Sequel Pro: {
//		33,
//		"utf8",
//		"utf8_general_ci",
//		"UTF-8 Unicode"
//	},

The important difference is the binary flag in 8.0.
(... wrong stuff removed ...)

@dmoagx
Copy link
Member

dmoagx commented Feb 23, 2017

OK, I take that back. The issue is more complex:

charsetnr reflects the charset in the RESULT (ie. whatever the character_set_results connection variable is set to) while flags reflects the actual column setting.
So because we usually do SET NAMES utf8; we will see the charsetnr as 33 (utf8/utf8_general_ci), but if we were to use SET NAMES latin1; it would appear as 8 (latin1/latin1_swedish_ci) instead.
This also explains why we see the impossible combination of BINARY and utf8_general_ci collation (since BINARY implies a _bin collation and vice versa).

According to the manual we would have to:

Character set conversion can be suppressed by setting character_set_results to NULL. In this case, charsetnr corresponds to the character set of the original table column or expression.

Side note: this is also important for #2321

@dmoagx
Copy link
Member

dmoagx commented Feb 23, 2017

So with charset conversion disabled the column type for SHOW DATABASES result is:

MySQL 8.0:

`Databases` VARCHAR(64) BINARY CHARACTER SET utf8 COLLATE utf8_bin NOT NULL

MySQL 5.5:

`Databases` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''

That may also mean our conversion logic is flawed?

@dmoagx
Copy link
Member

dmoagx commented Feb 23, 2017

@mpyw If you can compile Sequel Pro yourself this should work now, otherwise you'll have to wait until our nightly builds are fixed.

@abhibeckert
Copy link
Member

abhibeckert commented Feb 23, 2017

otherwise you'll have to wait until our nightly builds are fixed.

Should be fixed tomorrow.

@dmoagx
Copy link
Member

dmoagx commented Mar 12, 2017

Related reports: http://log.sequelpro.com/view/6553

@Dylan-Buth
Copy link

Experiencing this issue as well.


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

(
	0   CoreFoundation                      0x00007fff327a52fb __exceptionPreprocess + 171
	1   libobjc.A.dylib                     0x00007fff59112c76 objc_exception_throw + 48
	2   CoreFoundation                      0x00007fff3283dda4 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
	3   CoreFoundation                      0x00007fff3271b670 ___forwarding___ + 1456
	4   CoreFoundation                      0x00007fff3271b038 _CF_forwarding_prep_0 + 120
	5   Sequel Pro                          0x000000010002fce3 -[SPDatabaseDocument setDatabases:] + 783
	6   Sequel Pro                          0x000000010002f2a9 -[SPDatabaseDocument setConnection:] + 610
	7   Foundation                          0x00007fff34816985 __NSThreadPerformPerform + 334
	8   CoreFoundation                      0x00007fff3273d821 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
	9   CoreFoundation                      0x00007fff327f74cc __CFRunLoopDoSource0 + 108
	10  CoreFoundation                      0x00007fff327202c0 __CFRunLoopDoSources0 + 208
	11  CoreFoundation                      0x00007fff3271f73d __CFRunLoopRun + 1293
	12  CoreFoundation                      0x00007fff3271efa3 CFRunLoopRunSpecific + 483
	13  HIToolbox                           0x00007fff31a3e866 RunCurrentEventLoopInMode + 286
	14  HIToolbox                           0x00007fff31a3e5d6 ReceiveNextEventCommon + 613
	15  HIToolbox                           0x00007fff31a3e354 _BlockUntilNextEventMatchingListInModeWithFilter + 64
	16  AppKit                              0x00007fff2fd3ba23 _DPSNextEvent + 2085
	17  AppKit                              0x00007fff304d0e6c -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044
	18  AppKit                              0x00007fff2fd30831 -[NSApplication run] + 764
	19  AppKit                              0x00007fff2fcff9d2 NSApplicationMain + 804
	20  Sequel Pro                          0x0000000100002454 start + 52
)

@jwwisniewski
Copy link

any info on the next release?

@mattiasarro
Copy link

Test builds are more up-to-date. The latest (3477d22) worked with MySQL 8.0.

@zaisahil
Copy link

Can we use Sequel Pro to connect MySQL 8 Server? Please confirm someone?

@jwwisniewski
Copy link

still only via the nightly builds I suppose; i'm using build 5224 for a couple of months now without any major issues

@zaisahil
Copy link

zaisahil commented May 14, 2018 via email

@jwwisniewski
Copy link

jwwisniewski commented May 14, 2018

https://sequelpro.com/test-builds - it's linked on the main page, in the header under the ... more section

@amacrobert
Copy link

Hi, I want to add my +1 to this. Hoping for an official release that supports MySQL 8 --- or at the very least a dev build that supports 8.0.12. Any update? Thanks.

@colorado666
Copy link

A whole year has passed....

@saifgithub
Copy link

Hi.

Just started using Sequel Pro. And It crashed on trying to use MySQL 8. Read through this bug issue and sounds like the same as mine.

I see this is still an open issue. Is there any news of a workaround solution that does not require a user to compile ?

@vkulov
Copy link

vkulov commented Oct 17, 2018

Please someone fix these crashes on Mojave

@ogyr
Copy link

ogyr commented Oct 17, 2018

Same issue here when connecting to a mysql 8.0.12 docker container.

@sebastiaanspeck
Copy link

I also have this issue. I'm running on Mojave

@jchenevey
Copy link

jchenevey commented Oct 22, 2018

Mohave, trying to connect to 8.0.12 over SSH. Pretty disappointing to see that this issue has been around for so long without a fix. Extra disappointing when trying to use Sequel Pro to diagnose and fix an issue in the middle of a site outage, and running into this bug.

Even better, I tried to submit the crash report, and the crash reporter errors out with a connection issue when trying to send the report.... 😑

@johnregalado
Copy link

I found an Easy Solution and this is exactly what I did to fix the issue.

  1. Open your applications directory
  2. Find Sequel Pro Application Icon
  3. Right Click and delete or drag and drop icon in the trash
  4. Visit: https://alternativeto.net/software/sequel-pro/
  5. Find another FREE alternative, I went with Valentina Studio for the mongodb/nosql support.
  6. Cut your losses on Sequel Pro

If your databases are on localhost, the data will still be there

@jpmurray
Copy link

To everyone complaining, you can at least try to install the nightly builds. I'm on Mojave. It works. And it's been said before.

@tommym9 The same problem happened to me. The following solution works for me:

  1. Uninstall Sequel Pro 1.1.2. by the command:
    brew cask uninstall sequel-pro
    if you install it via brew cask install sequel-pro. Otherwise, delete it directly.
  2. Install sequel-pro-nightly by
    brew cask install homebrew/cask-versions/sequel-pro-nightly
    or directly download Sequel-Pro-Build-3477d22387.zip

Maybe you can try!

@pedzed
Copy link

pedzed commented Oct 23, 2018

@jpmurray We're talking about nightly, not even beta?

If something happened to somebody's production database whilst using the nightly, can we hold you responsible for suggesting a foolish option?

You're one of the few people who actually come with possible solutions, so that is good, but do realize that not everybody can take the risks. Even if there are backups in place.

Many people can't contribute directly with code, but I'm sure that many people wouldn't mind paying for Sequel Pro if it ensured that the main developer will spend more time on this beautiful project.

@sebastiaanspeck
Copy link

I just downgraded MySQL to 5.7 and it doesn’t crash anymore

@scrnjakovic
Copy link

scrnjakovic commented Oct 24, 2018

@sebastiaanspeck that's not solution, that's stupid. You shouldn't sacrifice your database because of this.

@jpmurray did you ever think it maybe doesn't work for everybody? We are not all on Mojave yet. Some cannot upgrade yet.

@mirceasoaica
Copy link

Downgrading MySQL is no longer an option for some: https://aws.amazon.com/about-aws/whats-new/2018/10/amazon-rds-now-supports-mysql-8/ (probably other managed services will upgrade).

Maybe creating a fork and resuming development with another team would be a good solution?

@tommym9
Copy link

tommym9 commented Oct 24, 2018

@jpmurray I ended up downgrading in the end as the infrastructure I was deploying to wouldn't support 8.

@scrnjakovic Heads up that everyone here is giving up their free time so I would consider toning down the anger a little bit.

@scrnjakovic
Copy link

@tommym9 I'm not angry, I just maintain that suggesting to downgrade and change infrastructure because of a broken tool is terrible thing to do and therefore terrible advice to give.

@joseluisq
Copy link

@scrnjakovic Agreed. Because there are workarounds like brew cask or builds compiling. Downgrading just for an updated tool is not a right solution.

@sebastiaanspeck
Copy link

@tommym9 I'm not angry, I just maintain that suggesting to downgrade and change infrastructure because of a broken tool is terrible thing to do and therefore terrible advice to give.

Or you wait with upgrading MySQL till the tools you want, also support the upgraded MySQL-version...

@joseluisq
Copy link

I don't want to kidding here, but in my opinion, one year for this issue is so much time.
Well, I'm not the maintainer, so this is just an user opinion.

@scrnjakovic
Copy link

@sebastiaanspeck Database > tool.
If I want to build myself a house, I wouldn't wait for Bosch to fix their hammer. I'll just buy Makita ;)

P.S. I'm aware SequelPro is free and based on donations, however I wouldn't mind it being commercial, I'd be happy to pay for it. If it worked.

@sequelpro sequelpro locked as too heated and limited conversation to collaborators Oct 24, 2018
@dmoagx
Copy link
Member

dmoagx commented Oct 24, 2018

The discussion is getting too off topic.
This is an issue tracker not a discussion forum.
If you don't have any information that may assist in fixing the problem do not comment!

Also many people are subscribed to this issue and are only interested when it will be fixed not in discussions that lead nowhere.

@dmoagx dmoagx pinned this issue Feb 5, 2019
@Kaspik
Copy link
Collaborator

Kaspik commented Jun 22, 2020

Please read about the future in new topic - #3705

@Kaspik Kaspik closed this as completed Jun 22, 2020
@Kaspik Kaspik unpinned this issue Jun 22, 2020
@abhibeckert abhibeckert reopened this Jul 2, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Development

No branches or pull requests