Page MenuHomePhabricator

"bin/storage dump" should force the client character set to utf8mb4 when server supports utf8mb4
Closed, ResolvedPublic

Description

Messing around with InnoDB logfile sizes threw the secure001 and secure002 MySQL servers out of sync (that is, replication failed). I copied secure001 to secure002 to restart replication.

The dump failed to load with a unique key error in the project_datasourcetoken table, because one of the tokens was a whale ("šŸ³").

When you dump a whale with utf8mb4, you get this:

INSERT INTO `x` VALUES ('šŸ³');

When you dump a whale with utf8, even with --hex-blob, you get this:

INSERT INTO `x` VALUES ('?');

This is a literal ASCII question mark, not some kind of rendering artifact.

We currently pass this:

$argv[] = '--default-character-set=utf8';

...but should pass utf8mb4 instead if the server supports it.