HomePhabricator

When "utf8mb4" is available, use it as the default client charset when invoking…

Description

When "utf8mb4" is available, use it as the default client charset when invoking standalone "mysql" commands

Summary:
Fixes T13390. We have some old code which doesn't dynamically select between "utf8mb4" and "utf8". This can lead to dumping utf8mb4 data over a utf8 connection in bin/storage dump, which possibly corrupts some emoji/whales.

Instead, prefer "utf8mb4" if it's available.

Test Plan: Ran bin/storage dump and bin/storage shell, saw sub-commands select utf8mb4 as the client charset.

Maniphest Tasks: T13390

Differential Revision: https://secure.phabricator.com/D20742