LoginSignup
11
10

More than 5 years have passed since last update.

XAMPP(OS X MAC 向け)v5.6.15のMySQL&PHP文字化けについての簡単な備忘録

Posted at

前提

  • XAMPPのバージョン 5.6.15
  • 使用PC MAC
  • ローカル環境のみ検証

XAMPPにはいろいろバージョン毎に改善(変更)があるので、中身が大きく変わることがまれにあります。今回は特にMySQLから、MariaDBにRDBMSが変更になってます。ただ、MySQL派生(オープンソース)なのであまり気にするところも無いかと思います。

手順

すべてターミナルで動かします。

通常MySQLは次の階層にあるかと思います。

/Applications/XAMPP/xamppfiles/bin/mysql

現状のキャラクターセットを把握します。

1. ターミナルを起動(Spotlight or AlfredよりTerminalと打 普通にApplicationsフォルダから開いてもいい。)

2. XAMPPまで移動(一気にMySQL起動してもいいです。)

Terminal
~$ cd /Applications/XAMPP/

 ls で確認ファイル存在を確認してもいいかもしれません。

Terminal
~$ cd /Applications/XAMPP/
~$ ls
bin     cgi-bin     etc     htdocs      logs        manager-osx.app uninstall.app   xamppfiles

3. MySQL起動(binの中に入ってます。指定してあげましょう)

Terminal
・・・
//カレントディレクトリがXAMPP
~$ ./bin/mysql -u root -p

4. パスワード聞かれます。

Terminal
Enter password: //ここに入力してエンター押してください。

5. このような表示になったらMySQL(MariaDB)に接続できました。

Terminal
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.1.9-MariaDB Source distribution
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> ;

6. 現状の設定を見てみましょう

Terminal
MariaDB [(none)]> show variables like 'char%';
+--------------------------+------------------------------------------------+
| Variable_name            | Value                                          |
+--------------------------+------------------------------------------------+
| character_set_client     | utf8                                           |
| character_set_connection | utf8                                           |
| character_set_database   | latin1                                         |
| character_set_filesystem | binary                                         |
| character_set_results    | utf8                                           |
| character_set_server     | latin1                                         |
| character_set_system     | utf8                                           |
| character_sets_dir       | /Applications/XAMPP/xamppfiles/share/charsets/ |
+--------------------------+------------------------------------------------+

このようにValueがutf8でないlatin1となってるものをすべてutf8にしたいです。

これはmy.cnfに追加行してあげると治ります。

通常MySQLのmy.cnfの場所

/Applications/XAMPP/etc/my.cnf

1. Vimでcnfファイルをいじります。

Terminal
//カレントディレクトリがXAMPP
~$ vim ./etc/my.cnf

エンターでVim画面に切り替わります。その中で、2箇所追記します。

[client]default-character-set=utf8

mysqldcharacter-set-server=utf8

をそれぞれ追記して保存しMySQLを再起動します。

Terminal
//■ Vim操作方法
//■ インサート
//「i」を押すと(インサートモードになります。)追記できる状態です。(Insert)
//■ 保存
//「escキー」を押したあと(ノーマルモードになります。)
//「:」を押すと(コマンドモード)コマンドモードになるので、
//上書き「qw」とうちエンターを押すと上書き保存サれています。
Terminal
# The following options will be passed to all MySQL clients
[client]
#password       = your_password
port            = 3306
socket          = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
//ここ↓
default-character-set=utf8
//ここ↑
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
user = mysql
port=3306
socket          = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
skip-external-locking
key_buffer = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
//ここ↓
character-set-server=utf8
//ここ↑

再起動します。

Terminal
~$ ./xamppfiles/sbin/mysqld restart

再起動できない場合は、XAMPPコントロールマネージャーのGUIよりリスタートしてください。

再度MySQLに接続して、キャラクターセットをかくにんしてください。

Terminal
MariaDB [(none)]> show variables like 'char%';
+--------------------------+------------------------------------------------+
| Variable_name            | Value                                          |
+--------------------------+------------------------------------------------+
| character_set_client     | utf8                                           |
| character_set_connection | utf8                                           |
| character_set_database   | utf8                                           |
| character_set_filesystem | binary                                         |
| character_set_results    | utf8                                           |
| character_set_server     | utf8                                           |
| character_set_system     | utf8                                           |
| character_sets_dir       | /Applications/XAMPP/xamppfiles/share/charsets/ |
+--------------------------+------------------------------------------------+
8 rows in set (0.00 sec)

これで、PHPからMySQLの日本語データ等は文字化けせずに表示できるはずです。
以上です。

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10