MySQL 5.7.X にて、my.ini に UTF8 を設定すると、MySQLのサービスが起動しません

フォローする

[事象]

my.ini で utf8 設定にしてサービス起動させようとすると、ずっと起動中ステータスのままで起動できない状態が発生します。

 

[背景]

MySQLの文字コードについて、character_set_database及びcharacter_set_serverutf8ではない場合は、日本語でデータを保存する時に文字化けが発生するため、文字コードの変更が必要になります。

文字コード変更後、MySQL再起動できないバージョンがあります。

 

[事象の詳細]

1. 文字コード変更を行います。

__1.png

2. MySQL再起動して、一部バージョンのMySQLは起動失敗、エラーポップアップを表示します

__2.png

[回避策]

方法1: my.iniファイルの文字コードをANSIへ変更します

  • 管理者レベルのcmd(コマンドプロンプト)でMySQL57サービスのpidをコマンド「sc queryex MySQL57」で確認ます
    __3.png
  • ②上記のcmdのまま、taskkill /pid [pid] /fでサービスを強制終了ます
    __4.png
  • ③ my.iniファイルの文字コードを「名前付けで保存」でANSIに変更て、上書き保存します
    pic5.png
  • ④ MySQL57サービスを起動します
    pic6.png
    ※これはMySQLの固有の不具合であり、以下のURLでご参照ださい。
    https://bugs.mysql.com/bug.php?id=95293

方法2: 文字コードをUTF8に変更する必要ないMySQLバージョン(MySQL8.0.29)を推奨します。

 ※MySQLバージョン5.7.33.0、5.7.34.0はインストール時、失敗のケースはあるので、この二つの
バージョンを使わないでください

 

[補足]

MySQLバージョン入れ替え時、旧バージョンを完全にアンインストールする方法を簡単紹介します。

また、MySQLは弊社の製品ではないため、アンインストール方法も複数方法があり、予想外の問題がありましたら、MySQL のサポート窓口へお問い合わせください。

(1) MySQLサービス停止

サービス一覧に「MySQL57」を右クリックして、「停止」をクリックします。

pic7.png

(2) MySQLサービス削除

cmd(コマンドプロンプト)を管理者権限で起動して、cdコマンドを使って、MySQLフォルダ内のbinフォルダに移動します。

mysqld --remove MySQL57」を入力して、エンターキーを押します。

Service successfully removed.”と表示されれば、MySQLサービスは正常に削除されます。

最後、cmdウィンドウを閉じます。

pic8.png

(3) MySQLのアンインストール

プログラムの追加と削除 を使って、「MySQL Installer-Community」と「MyQL Server5.7」を削除します。

pic9.png

 

(4) MySQL のフォルダ削除

C:\Program Files\中のMySQLフォルダ(残る場合)を削除します

pic10.png

C:\ProgramData\中のMySQLを削除します

pic11.png

 

[テストした環境]

Windows Server 2016、Windows Server 2012 R2

[事象が発生するバージョン]

5.7.26, 5.7.27, 5.7.28, 5.7.35, 5.7.36, 5.7.37

[推奨しないバージョン]

5.7.33.0、5.7.34.0

[UTF8設定の不要バージョン]

8.0.29 (BizRoboのバージョンはご注意ください)

※BizRobo! をセットアップする前のデータベースをセットアップする段階での MySQL の問題となりますので、本問題の調査が必要な場合には、MySQL のサポート窓口へお問い合わせください。