MySQLに対して特定の条件下でインポートを行うと文字化けが発生する

【事象】
特定の条件下でインポートを行うと文字化けが発生していた。
(同じサーバーに対して別の人がインポートした処理は文字化けが発生していなかった)

【原因】
WindowsCLI(DOSプロンプト)でmysqlSQLをインポートすると文字化けが発生していた。

【詳解】
利用しているサーバーにMySQL Workbenchで接続し文字コードを確認した。

f:id:yoneyore:20210717160209p:plain
MySQL Workbenchで接続した結果

その後、WindowscliMySQL Workbench内にあるmysql.exeを用いて、同じサーバーで同様の確認を行った。

f:id:yoneyore:20210717160423p:plain
DOSプロンプトでCLI接続した結果

結果、同じSQLを実行しているのに、別の結果が返ってきた。
WindowsDOSプロンプトの文字コードはCP932である。
そのため、どうもmysqlCLIモードで実行すると、character_set_clientをCP932で送っているからと思われる。
(なお、パケットの観察までは行っていない)

【対応方法】
1.skip-character-set-client-handshakeをサーバーに設定する。
2.mysql.exeで接続する際にdefault-character-setなど文字コードのパラメータを付与する。
3.DOSプロンプトの文字コードをchcp 65001で変更してから接続する。

f:id:yoneyore:20210717161130p:plain
chcp 65001実行後のコンソールで実行した結果(それ以外何も変更点無)