
A5:SQL Mk-2 を起動した瞬間に、
Unicode 文字のマッピングがターゲットのマルチバイト コードページに存在しません。
というメッセージが表示されると、正直ヒヤッとします。
「MySQLが壊れたのでは?」「WindowsアップデートのせいでDBが死んだ?」
そんな不安が一気に頭をよぎりますが、結論から言うと MySQLが壊れている可能性はかなり低い です。
このエラーの正体と、落ち着いて対処するための手順を整理します。
このエラーは何を意味しているのか
このメッセージは、Windowsが内部で使っているAPIのエラー文言です。
意味を噛み砕くとこうなります。
「Unicode文字を、現在の文字コード(Shift-JISなど)に変換しようとしたが、対応する文字が存在しない」
つまり 文字コード変換に失敗した だけで、
- データベース破損
- テーブル消失
- MySQLクラッシュ
といった深刻な話とは性質が違います。
Windowsアップデート後に起きやすい理由
Windows Update でアプリを終了させないまま再起動されると、次のようなことが起きがちです。
- システムロケール(コードページ)の再初期化
- 「Unicode UTF-8(ベータ)」設定のオン・オフ切り替え
- A5の設定ファイルが中途半端な状態で読み込まれる
A5:SQL Mk-2 は長年使われている優秀なツールですが、
OS側の文字コード環境の変化にやや弱い という性質があります。
結果として、起動時にこのUnicodeエラーが出ることがあります。
MySQLが壊れていないと言える理由
ここは重要なポイントです。
MySQLが壊れている場合、起きるのは次のような症状です。
- mysqld が起動しない
- InnoDB の致命的エラーが出る
- 接続自体が不可能
しかし今回のケースでは、
- A5の起動時点でエラーが出ている
つまり MySQLに接続する前に失敗している ため、
原因はクライアント(A5+Windows環境)側と考えるのが自然です。
「接続定義が見つからない」のは仕様
途中で多くの人がつまずくのが、
「左のデータベースペインに接続定義が見当たらない」
という点です。
これは不具合ではありません。
A5では、起動直後・未接続状態では接続定義が左ペインに表示されない設計になっています。
正しい入口
接続定義は、次の場所から開きます。
- メニュー → ファイル → データベースに接続
- または データベース接続の編集
ここで初めて、MySQLやMariaDBの接続定義一覧が表示されます。
接続文字コードの確認・修正手順
接続定義一覧が表示されたら、次の操作を行います。
- 接続定義を右クリック
- 接続プロパティの変更
- 詳細タブを開く
- 文字コード設定を
- 自動判別
- UTF-8
のいずれかに変更
Shift-JIS(MS932)になっている場合、今回のエラーと辻褄が合います。
SQLエディタ側の文字コードも確認
念のため、表示・保存側も見直します。
- ツール → オプション → SQLエディタ
- 保存時の文字コードを UTF-8(BOMなし)または自動判別
直接の原因でない場合もありますが、再発防止になります。
それでも直らない場合の切り札
設定ファイル自体が壊れている可能性があります。
A5設定の安全なリセット
- A5を完全に終了
- 次のフォルダを開く
C:\Users\(ユーザー名)\Documents\A5M2\
- フォルダを丸ごとリネーム(例:A5M2_backup)
- A5を起動
これで設定は初期状態に戻ります。
MySQLのデータには一切影響しません。
Windowsの「UTF-8(ベータ)」設定も要注意
次の設定がオンになっていると、A5が不機嫌になることがあります。
- 管理用の言語設定
- システムロケール
- 「Unicode UTF-8 を使用(ベータ)」
オフにして再起動するだけで直るケースも珍しくありません。
まとめ
- MySQLが壊れている可能性は低い
- 原因は A5:SQL Mk-2 と Windows の文字コード環境
- 接続定義は左ペインではなく「ファイル」メニューから開く
- 最悪でも A5の設定リセットで復旧できる
A5:SQL Mk-2 は実直で優秀ですが、少し繊細です。
OSに強制的に環境を変えられると、こうして文句を言います。
慌てず、論理的に切り分ければ、データベースはちゃんと無事です。
(筆者の所感)
本文は筆者のPCで実際に起こったトラブルについて、チャットGPTとやり取りしたログを基にして
テキスト生成された記事になっています。

最終的に解決したのは、
設定>オプション>SQLタブ>”SQLファイルのデフォルトエンコーディング” を選択しなおすという方法でした。
元々 Shift_JIS(MS932)が選択されていたものを、一時的に別の文字コードに変更しOKを押す。
そしてまた元のShift_JIS(MS932)に選択しなおしてOKを押すとメッセージが出なくなりました。
コメント