概要
ここの記事を参考にニフティクラウドRDBでも utf8_mb4 が使えるか試してみました
ちなみに utf8_mb4 は 4 バイト長の utf8 文字をサポートする文字コードで emoticon (絵文字) や 第4水準漢字が使えるようになるみたいです
環境
- Mac OS X 10.10.4
- MySQL Client 14.14 Distrib 5.6.25
- MySQL Server 5.6.22 (ニフティクラウド RDB)
RDBの作成
コントロールパネルから簡単に行えるので詳細は割愛します
流れだけ紹介します
- コントロールパネルにログインしDBサーバの一覧から「DBサーバー新規作成」
- 入力する内容はとりあえず適当でOK (後で utf8_mb4 を有効にした DB パラメータグループに変更します)
今回はテストなのでスペックは mini として冗長化やディスク拡張はしない最小限のスペックで作成しました
また、DB名やユーザ名も適当に指定しました
30分ほどで作成できるので待ちます
utf8_mb4 用の DB パラメータグループの作成
DBサーバーが作成できたら DB パラメータグループを作成します
今回は utf8_mb4 を設定した専用のパラメータグループを作成します
DBパラメータの一覧から「DBパラメーターグループの新規作成」として作成します
名前は「utf8mb4」とでもしておきましょう
作成できたらパラメータを変更していきます
作成した DB パラメータグループをチェックしてプルダウンから「DB パラメータグループの編集」を選択します
ここで以下4パターンのパラメータを変更します
character 系パラメータの変更
検索ボックスに「character」と入力してください
ここで表示された以下5つの項目を utf8mb4 に変更します
- character_set_client
- character_set_connection
- character_set_database
- character_set_results
- character_set_server
変更はプルダウンの一覧から選択してください
collation 系パラメータの変更
次に検索ボックスに「collation」と入力してください
ここで表示された以下2つの項目を utf8mb_general_ci に変更します
- collation_connection
- collation_server
変更はプルダウンの一覧から選択してください
skip-character-set-client-handshake パラメータの変更
3つ目は検索ボックスに「skip-character-set-handshake」と入力してください
このパラメータの値を 1 に変更します
init_connect パラメータの変更
最後に検索ボックスに「init_connect」と入力してください
このパラメータは文字列を直接入力する必要があるので「SET NAMES utf8mb4;」と入力してください
上記の作業は一度に変更してもOKですし、1つずつ保存してから実施してもOKです
全項目が設定できたら DB パラメータグループの設定は終わりです
DB サーバの DB パラメータグループを変更する
DB サーバーの一覧に移動します
作成待ちになった DB サーバーができていれば DB パラメーターグループを変更します
DB サーバーをチェックして「設定変更」をクリックします
DB パラメーターグループを変更できる箇所があるのでプルダウンから作成した DB パラメーターグループを選択して変更を適用します
これで DB サーバーに適用されている DB パラメータグループの変更は完了しました
ただ、まだ MySQL 自体にそのパラメータが適用されていないので一度 DB サーバー自体を再起動します
これも DB サーバーをチェックして「DBサーバー再起動」を選択すればOKです
再起動は数分で完了します
MySQL クライアントで接続して動作確認してみる
今回は Mac で動作確認しています
mysql
コマンドがインストールされていない場合はbrew isntall mysql
でインストールしましょう
では接続してみましょう
接続方法は普通の MySQL と同じです
mysql -u usename -p db_name -h grobal_ip_address
username, db_name, grobal_ip_address は作成された DB サーバーの情報を入力してください
パスワードを入力して接続できればOKです
文字コードの設定を確認してみる
status
コマンドで確認してみましょう
mysql> status
--------------
mysql Ver 14.14 Distrib 5.6.25, for osx10.10 (x86_64) using EditLine wrapper
Connection id: 41
Current database: utf8mb4_test
Current user: username@xxx.xxx.xxx.xxx
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.6.22 MySQL Community Server (GPL)
Protocol version: 10
Connection: 111.171.222.67 via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8
Client characterset: utf8mb4
Conn. characterset: utf8mb4
TCP port: 3306
Uptime: 1 hour 31 min 41 sec
Threads: 1 Questions: 135 Slow queries: 0 Opens: 73 Flush tables: 1 Open tables: 65 Queries per second avg: 0.024
--------------
utf8mb4 になっていることが確認できます
では実際に絵文字が登録できるか試してみます
絵文字を登録してみる
まず適当にテーブルを作成しましょう
CREATE TABLE test_utf8mb4 (str VARCHAR(50)) CHARACTER SET utf8mb4;
このテーブルにデータを入れてみます
コマンドは以下の通りです
※絵文字を使用しているため画像になります
完了したらSELECT
してみましょう
絵文字が登録されていることを確認できました
ちなみに utf8mb4 になっていない MySQL に対してもテストしてみたのですが、以下のように絵文字は登録されないことが確認できました
最後に
ニフティクラウドRDBでも utf8mb4 が動くことを確認できました
サーバ側の設定はコンパネおよびターミナルでできるのですが、動作確認時の絵文字の入力が Mac じゃないとちょっと大変かもしれません
Mac の場合Shift+Cmd+Space
で絵文字一覧がでるのでそこから選択するだけ絵文字入力できるので楽です
0 件のコメント:
コメントを投稿