Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Mikiya Okuno
10,035 views
MySQL日本語利用徹底入門
Technology
◦
Read more
42
Save
Share
Embed
Embed presentation
Download
Downloaded 210 times
1
/ 49
2
/ 49
3
/ 49
4
/ 49
5
/ 49
6
/ 49
7
/ 49
8
/ 49
9
/ 49
10
/ 49
11
/ 49
12
/ 49
13
/ 49
14
/ 49
15
/ 49
16
/ 49
17
/ 49
18
/ 49
19
/ 49
20
/ 49
21
/ 49
22
/ 49
23
/ 49
24
/ 49
25
/ 49
26
/ 49
27
/ 49
28
/ 49
29
/ 49
30
/ 49
31
/ 49
32
/ 49
33
/ 49
34
/ 49
35
/ 49
36
/ 49
37
/ 49
38
/ 49
39
/ 49
40
/ 49
41
/ 49
42
/ 49
43
/ 49
44
/ 49
45
/ 49
46
/ 49
47
/ 49
48
/ 49
49
/ 49
More Related Content
PDF
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
by
Amazon Web Services Japan
PDF
AWS X-Rayによるアプリケーションの分析とデバッグ
by
Amazon Web Services Japan
PDF
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
by
Preferred Networks
PDF
AWS EC2 Eメール制限解除 - 逆引き(rDNS)設定 申請手順
by
Amazon Web Services Japan
PPTX
今だから!Amazon CloudFront 徹底活用
by
Yasuhiro Araki, Ph.D
PPTX
CloudTrail ログの検索を爆速化してみた
by
Yohei Azekatsu
PPTX
VPP事始め
by
npsg
PDF
AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)
by
Amazon Web Services Japan
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
by
Amazon Web Services Japan
AWS X-Rayによるアプリケーションの分析とデバッグ
by
Amazon Web Services Japan
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
by
Preferred Networks
AWS EC2 Eメール制限解除 - 逆引き(rDNS)設定 申請手順
by
Amazon Web Services Japan
今だから!Amazon CloudFront 徹底活用
by
Yasuhiro Araki, Ph.D
CloudTrail ログの検索を爆速化してみた
by
Yohei Azekatsu
VPP事始め
by
npsg
AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)
by
Amazon Web Services Japan
What's hot
PDF
AWS Black Belt Techシリーズ Amazon Kinesis
by
Amazon Web Services Japan
PDF
AWSからのメール送信
by
Amazon Web Services Japan
PDF
スイッチ・ルータのしくみ
by
ogatay
PDF
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
by
Amazon Web Services Japan
PDF
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
by
Amazon Web Services Japan
PDF
AWS Black Belt Online Seminar 2016 HPC分野でのAWS活用
by
Amazon Web Services Japan
PDF
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
PDF
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
by
ssuser868e2d
PDF
20190320 AWS Black Belt Online Seminar Amazon EBS
by
Amazon Web Services Japan
PDF
AWS Black Belt Online Seminar 2016 AWS Key Management Service
by
Amazon Web Services Japan
PDF
Amazon Athena 初心者向けハンズオン
by
Amazon Web Services Japan
PDF
AWS Elemental MediaConvert で動画変換
by
虎の穴 開発室
PDF
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
by
Amazon Web Services Japan
PDF
AWS Black Belt Online Seminar AWS CloudFormation アップデート
by
Amazon Web Services Japan
PPTX
基礎から学ぶ? EC2マルチキャスト
by
Noritaka Sekiyama
PDF
Oracle GoldenGate for Big Data 12.2 セットアップガイド
by
オラクルエンジニア通信
PDF
シングルサインオンの歴史とSAMLへの道のり
by
Shinichi Tomita
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
by
Amazon Web Services Japan
PPTX
SCUGJ第22回勉強会:オンプレのL2 NetworkをAzureに延伸? Azure Extended Network
by
wind06106
AWS Black Belt Techシリーズ Amazon Kinesis
by
Amazon Web Services Japan
AWSからのメール送信
by
Amazon Web Services Japan
スイッチ・ルータのしくみ
by
ogatay
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
by
Amazon Web Services Japan
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
by
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 HPC分野でのAWS活用
by
Amazon Web Services Japan
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
by
ssuser868e2d
20190320 AWS Black Belt Online Seminar Amazon EBS
by
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS Key Management Service
by
Amazon Web Services Japan
Amazon Athena 初心者向けハンズオン
by
Amazon Web Services Japan
AWS Elemental MediaConvert で動画変換
by
虎の穴 開発室
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
by
Amazon Web Services Japan
AWS Black Belt Online Seminar AWS CloudFormation アップデート
by
Amazon Web Services Japan
基礎から学ぶ? EC2マルチキャスト
by
Noritaka Sekiyama
Oracle GoldenGate for Big Data 12.2 セットアップガイド
by
オラクルエンジニア通信
シングルサインオンの歴史とSAMLへの道のり
by
Shinichi Tomita
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
by
Amazon Web Services Japan
SCUGJ第22回勉強会:オンプレのL2 NetworkをAzureに延伸? Azure Extended Network
by
wind06106
Viewers also liked
PDF
リレーショナルな正しいデータベース設計
by
Mikiya Okuno
PDF
Zabbixのパフォーマンスチューニング & インストール時の注意点
by
Kodai Terashima
PDF
MySQLのプロトコル解説
by
Masahiro Tomita
PDF
MySQLの文字コード事情
by
Masahiro Tomita
PDF
DTraceによるMySQL解析ことはじめ
by
Mikiya Okuno
PDF
Mysql toranomaki
by
Mikiya Okuno
PDF
Art of MySQL Replication.
by
Mikiya Okuno
PPT
Apache Module
by
Tomohiro Ikebe
PDF
MySQL 5.6新機能解説@dbtechshowcase2012
by
Mikiya Okuno
PDF
MySQLインストールのお作法
by
Meiji Kimura
PDF
MySQL 5.5 Update #denatech
by
Mikiya Okuno
PDF
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
by
Mikiya Okuno
PDF
Enter the-dolphine
by
Mikiya Okuno
PDF
配布用Beginnerならきっと役立つmaster slave環境
by
yut148atgmaildotcom
ODP
Performance Schema @ MySQL Casual #2
by
Mikiya Okuno
PDF
初心者向けMySQLの始め方
by
Masahiro Tomita
PDF
MySQL ガチBeginnerがやってみたことと反省したこと
by
Satoshi Suzuki
PDF
私がMySQLを始めた理由
by
yoyamasaki
PDF
Database qpstudy-okuno
by
Mikiya Okuno
PDF
Rdbms qpstudy-okuno
by
Mikiya Okuno
リレーショナルな正しいデータベース設計
by
Mikiya Okuno
Zabbixのパフォーマンスチューニング & インストール時の注意点
by
Kodai Terashima
MySQLのプロトコル解説
by
Masahiro Tomita
MySQLの文字コード事情
by
Masahiro Tomita
DTraceによるMySQL解析ことはじめ
by
Mikiya Okuno
Mysql toranomaki
by
Mikiya Okuno
Art of MySQL Replication.
by
Mikiya Okuno
Apache Module
by
Tomohiro Ikebe
MySQL 5.6新機能解説@dbtechshowcase2012
by
Mikiya Okuno
MySQLインストールのお作法
by
Meiji Kimura
MySQL 5.5 Update #denatech
by
Mikiya Okuno
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
by
Mikiya Okuno
Enter the-dolphine
by
Mikiya Okuno
配布用Beginnerならきっと役立つmaster slave環境
by
yut148atgmaildotcom
Performance Schema @ MySQL Casual #2
by
Mikiya Okuno
初心者向けMySQLの始め方
by
Masahiro Tomita
MySQL ガチBeginnerがやってみたことと反省したこと
by
Satoshi Suzuki
私がMySQLを始めた理由
by
yoyamasaki
Database qpstudy-okuno
by
Mikiya Okuno
Rdbms qpstudy-okuno
by
Mikiya Okuno
Similar to MySQL日本語利用徹底入門
PDF
MySQLおじさんの逆襲
by
yoku0825
PDF
MySQL 8.0で憶えておいてほしいこと
by
yoku0825
PDF
PostgreSQL Unconference #29 Unicode IVS
by
Noriyoshi Shinoda
PDF
MySQL 5.7 InnoDB 日本語全文検索
by
yoyamasaki
PDF
いろいろ考えると日本語の全文検索もMySQLがいいね!
by
Kouhei Sutou
PPTX
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
by
Ryusuke Kajiyama
PDF
MySQL 8.0でMroonga
by
Kouhei Sutou
PDF
Mysqlの文字コード
by
Masahiro Tomita
PDF
データベース06 - SQL(VIEW, ALTER, GRANTなど)
by
Kenta Oku
PDF
Mysql+Mroongaで全文検索
by
yoyamasaki
PDF
寿司blogが書けなくて嵌った話(MySQL/絵文字対応)
by
Kenichiro MATOHARA
PDF
Mysql charset
by
Masahiro Tomita
PDF
ついにリリース!! MySQL 8.0 最新情報
by
yoyamasaki
PPTX
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
by
Ryusuke Kajiyama
PPT
20080617 05 Mysql
by
stiq 2e
PDF
Nseg49 mysql
by
Masahiro Tomita
PPTX
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
by
Ryusuke Kajiyama
PPT
私のSql -My Sql
by
stiq 2e
KEY
My sql casual_in_fukuoka_vol1
by
Makoto Haruyama
PPTX
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
by
iPride Co., Ltd.
MySQLおじさんの逆襲
by
yoku0825
MySQL 8.0で憶えておいてほしいこと
by
yoku0825
PostgreSQL Unconference #29 Unicode IVS
by
Noriyoshi Shinoda
MySQL 5.7 InnoDB 日本語全文検索
by
yoyamasaki
いろいろ考えると日本語の全文検索もMySQLがいいね!
by
Kouhei Sutou
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
by
Ryusuke Kajiyama
MySQL 8.0でMroonga
by
Kouhei Sutou
Mysqlの文字コード
by
Masahiro Tomita
データベース06 - SQL(VIEW, ALTER, GRANTなど)
by
Kenta Oku
Mysql+Mroongaで全文検索
by
yoyamasaki
寿司blogが書けなくて嵌った話(MySQL/絵文字対応)
by
Kenichiro MATOHARA
Mysql charset
by
Masahiro Tomita
ついにリリース!! MySQL 8.0 最新情報
by
yoyamasaki
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
by
Ryusuke Kajiyama
20080617 05 Mysql
by
stiq 2e
Nseg49 mysql
by
Masahiro Tomita
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
by
Ryusuke Kajiyama
私のSql -My Sql
by
stiq 2e
My sql casual_in_fukuoka_vol1
by
Makoto Haruyama
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
by
iPride Co., Ltd.
More from Mikiya Okuno
PDF
MySQLアーキテクチャ図解講座
by
Mikiya Okuno
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
by
Mikiya Okuno
PDF
データベース設計徹底指南
by
Mikiya Okuno
PDF
What's New in MySQL 5.7 InnoDB
by
Mikiya Okuno
PDF
あなたが知らない リレーショナルモデル
by
Mikiya Okuno
PDF
MySQL 5.7 トラブルシューティング 性能解析入門編
by
Mikiya Okuno
PDF
RDBにおけるバリデーションをリレーショナルモデルから考える
by
Mikiya Okuno
PDF
MySQLトラブル解析入門
by
Mikiya Okuno
PDF
What's New in MySQL 5.7 Replication
by
Mikiya Okuno
PDF
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
by
Mikiya Okuno
PDF
MySQL Cluster 新機能解説 7.5 and beyond
by
Mikiya Okuno
PDF
リレーショナルデータベースとの上手な付き合い方 long version
by
Mikiya Okuno
PDF
リレーショナルデータベースとの上手な付き合い方
by
Mikiya Okuno
PDF
サポート一筋24+年のエンジニア、サポートのイロハは E4500に教わった。 Sun Microsystems 勉強会〜1994年頃から2000年頃の思い...
by
Mikiya Okuno
PDF
とあるギークのキーボード遍歴
by
Mikiya Okuno
PDF
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
by
Mikiya Okuno
PDF
What's New in MySQL 5.7 Security
by
Mikiya Okuno
PDF
なぜ、いまリレーショナルモデルなのか
by
Mikiya Okuno
PDF
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
by
Mikiya Okuno
PDF
人類は如何にして大切な データベースを守るべきか
by
Mikiya Okuno
MySQLアーキテクチャ図解講座
by
Mikiya Okuno
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
by
Mikiya Okuno
データベース設計徹底指南
by
Mikiya Okuno
What's New in MySQL 5.7 InnoDB
by
Mikiya Okuno
あなたが知らない リレーショナルモデル
by
Mikiya Okuno
MySQL 5.7 トラブルシューティング 性能解析入門編
by
Mikiya Okuno
RDBにおけるバリデーションをリレーショナルモデルから考える
by
Mikiya Okuno
MySQLトラブル解析入門
by
Mikiya Okuno
What's New in MySQL 5.7 Replication
by
Mikiya Okuno
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
by
Mikiya Okuno
MySQL Cluster 新機能解説 7.5 and beyond
by
Mikiya Okuno
リレーショナルデータベースとの上手な付き合い方 long version
by
Mikiya Okuno
リレーショナルデータベースとの上手な付き合い方
by
Mikiya Okuno
サポート一筋24+年のエンジニア、サポートのイロハは E4500に教わった。 Sun Microsystems 勉強会〜1994年頃から2000年頃の思い...
by
Mikiya Okuno
とあるギークのキーボード遍歴
by
Mikiya Okuno
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
by
Mikiya Okuno
What's New in MySQL 5.7 Security
by
Mikiya Okuno
なぜ、いまリレーショナルモデルなのか
by
Mikiya Okuno
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
by
Mikiya Okuno
人類は如何にして大切な データベースを守るべきか
by
Mikiya Okuno
MySQL日本語利用徹底入門
1.
<Insert Picture Here> MySQL
日本語利用徹底入門 日本オラクル株式会社 MySQL Global Business Unit テクニカルアナリスト 奥野幹也 2012 年 5 月 29 日 Copyright© 2012, Oracle. All rights reserved.
2.
2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。ま た、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確 約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オ ラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊 社の裁量により決定されます。 Oracle と Java は、 Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。 Copyright© 2012, Oracle. All rights reserved.
3.
<Insert Picture Here> 文字コードとは
Copyright© 2012, Oracle. All rights reserved.
4.
文字コードは文字を符号化したもの。 ●
ASCII ● 7ビットで表現可能なラテン文字を中心とした文字コード ● a ---> 0x61, b ---> 0x62, c ---> 0x63 ● JIS X 208 ● Shift_JIS … 日本 ---> 0x93FA967B ● EUC-JP … 日本 ---> 0xC6FCCBDC ● UTF-8 … 日本 ---> 0xE697A5E69CAC 符号化の方式にはいくつか種類がある Copyright© 2012, Oracle. All rights reserved.
5.
<Insert Picture Here> MySQL
と文字コード Copyright© 2012, Oracle. All rights reserved.
6.
MySQL の文字コードは結構複雑?
MySQL の文字コードの実装は とても柔軟 柔軟さが増せば複雑さも増す・・・ Copyright© 2012, Oracle. All rights reserved.
7.
MySQL で利用可能な日本語対応文字コード 文字コード名
対応文字 ストレージサイズ sjis JIS X 0208:1997 1 〜 2 バイト cp932 JIS X 0208:1997 + NEC 特殊文字 1 〜 2 バイト ・ IBM 拡張文字 ujis JIS X 0208:1997 1 〜 3 バイト eucjpms JIS X 0208:1997 + NEC 特殊文字 1 〜 3 バイト ・ IBM 拡張文字 utf8 JIS X 0208:1997 + NEC 特殊文字 1 〜 3 バイト ・ IBM 拡張文字 utf8mb4 JIS X 0213:2004 1 〜 4 バイト Copyright© 2012, Oracle. All rights reserved.
8.
照合順序 文字の並び順を定義したもの。 mysql> set names
utf8 collate utf8_general_ci; Query OK, 0 rows affected (0.00 sec) mysql> select 'abc' = 'ABC'; +---------------+ | 'abc' = 'ABC' | +---------------+ | 1 | +---------------+ 1 row in set (0.00 sec) mysql> set names utf8 collate utf8_bin; Query OK, 0 rows affected (0.00 sec) ソートや比較の mysql> select 'abc' = 'ABC'; 結果に影響 +---------------+ | 'abc' = 'ABC' | +---------------+ | 0 | +---------------+ 1 row in set (0.00 sec) Copyright© 2012, Oracle. All rights reserved.
9.
MySQL で使用可能な照合順序 mysql> show
collation; +--------------------------+----------+-----+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------------+----------+-----+---------+----------+---------+ | big5_chinese_ci | big5 | 1 | Yes | Yes | 1 | | big5_bin | big5 | 84 | | Yes | 1 | | dec8_swedish_ci | dec8 | 3 | Yes | Yes | 1 | | dec8_bin | dec8 | 69 | | Yes | 1 | : : | eucjpms_japanese_ci | eucjpms | 97 | Yes | Yes | 1 | | eucjpms_bin | eucjpms | 98 | | Yes | 1 | +--------------------------+----------+-----+---------+----------+---------+ 197 rows in set (0.01 sec) 照合順序は文字コードにマッチしている必要がある Copyright© 2012, Oracle. All rights reserved.
10.
文字コードはセッションごとに異なるかも。
UTF-8 セッション 1 クライアント 1 セッション 2 クライアント 2 Shift_JIS MySQL サーバー Copyright© 2012, Oracle. All rights reserved.
11.
文字コードはテーブルごとに異なるかも。
Shift_JIS テーブル UTF-8 EUC_JP テーブル テーブル MySQL サーバー Copyright© 2012, Oracle. All rights reserved.
12.
文字コードはカラムごとに異なるかも。
UTF-8 カラム 1 Shift_JIS カラム 2 カラム 3 binary テーブル MySQL サーバー Copyright© 2012, Oracle. All rights reserved.
13.
MySQL サーバー内の文字コード変換
④ データを ② クエリの実行 蓄える際の に利用する ① 送信する 文字コード 文字コード SQL 文に対する ⑤ テーブル名や 文字コード カラム名に対する 文字コード セッション クライアント テーブル MySQL サーバー ③ クエリの 実行結果に対する ⑥ ファイル名を 文字コード 解決する際の 文字コード ファイルシステム 出展:エキスパートのための MySQL [運用+管理]トラブルシューティングガイド Copyright© 2012, Oracle. All rights reserved.
14.
文字コードを確認する ●
SHOW [GLOBAL] VARIABLES LIKE 'char%'; (1)character_set_client (2)character_set_connection (3)character_set_results (4)character_set_server/character_set_database (5)character_set_system (6)character_set_filesystem Copyright© 2012, Oracle. All rights reserved.
15.
<Insert Picture Here> テーブルの文字コード
Copyright© 2012, Oracle. All rights reserved.
16.
テーブルの文字コード(1) ●
カラムごとに文字コードを指定可能 CREATE TABLE t ( a VARCHAR(100) CHARACTER SET cp932, b VARCHAR(100) CHARACTER SET eucjpms, c VARCHAR(100) CHARACTER SET utf8, : ); 超柔軟 Copyright© 2012, Oracle. All rights reserved.
17.
テーブルの文字コード (2) CREATE TABLE
t ( a VARCHAR(100) CHARACTER SET cp932, b VARCHAR(100) CHARACTER SET eucjpms, c VARCHAR(100), : ) CHARACTER SET utf8; 指定がない場合にはテーブルのデフォルト文字コードに Copyright© 2012, Oracle. All rights reserved.
18.
テーブルの文字コード (3) CREATE TABLE
t ( a VARCHAR(100) CHARACTER SET cp932, b VARCHAR(100) CHARACTER SET eucjpms, c VARCHAR(100), : ); テーブルの文字コードの指定がない場合には・・・ ● データベースの文字コードがテーブルのデフォルト文字コードに ● テーブルのデフォルト文字コードがカラムの文字コードに Copyright© 2012, Oracle. All rights reserved.
19.
データベースの文字コード CREATE DATABASE d1
CHARACTER SET utf8; CREATE DATABASE d2; 指定がない場合には character_set_server に SET GLOBAL character_set_server = utf8 Copyright© 2012, Oracle. All rights reserved.
20.
文字コードのデフォルト値
characer_set_server データベースの文字コード ( character_set_database ) テーブルのデフォルト文字コード 優先度が カラムの文字コード 最も高い Copyright© 2012, Oracle. All rights reserved.
21.
照合順序の設定方法 CREATE TABLE t
( a VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin, : ); CREATE DATABASE d CHARACTER SET utf8 COLLATE utf8_bin; SET GLOBAL collation_server = utf8_bin; Copyright© 2012, Oracle. All rights reserved.
22.
テーブルの文字コードの確認方法 (1) mysql> show
create table CityG *************************** 1. row *************************** Table: City Create Table: CREATE TABLE `City` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Name` char(35) NOT NULL DEFAULT '', `CountryCode` char(3) NOT NULL DEFAULT '', `District` char(20) NOT NULL DEFAULT '', `Population` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`ID`) ) ENGINE=MyISAM AUTO_INCREMENT=4080 DEFAULT CHARSET=latin1 1 row in set (0.00 sec) Copyright© 2012, Oracle. All rights reserved.
23.
テーブルの文字コードの確認方法 (2) mysql> show
full fields in CityG *************************** 1. row *************************** 中略 *************************** 2. row *************************** Field: Name Type: char(35) Collation: latin1_swedish_ci Null: NO Key: Default: Extra: Privileges: select,insert,update,references Comment: *************************** 3. row *************************** : Copyright© 2012, Oracle. All rights reserved.
24.
テーブルの文字コードの確認方法 (3) mysql> select
table_name, column_name, collation_name from information_schema.columns where collation_name is not null and table_schema='world'; +-----------------+----------------+-------------------+ | table_name | column_name | collation_name | +-----------------+----------------+-------------------+ | City | Name | latin1_swedish_ci | | City | CountryCode | latin1_swedish_ci | | City | District | latin1_swedish_ci | | Country | Code | latin1_swedish_ci | | Country | Name | latin1_swedish_ci | | Country | Continent | latin1_swedish_ci | | Country | Region | latin1_swedish_ci | | Country | LocalName | latin1_swedish_ci | | Country | GovernmentForm | latin1_swedish_ci | | Country | HeadOfState | latin1_swedish_ci | | Country | Code2 | latin1_swedish_ci | | CountryLanguage | CountryCode | latin1_swedish_ci | | CountryLanguage | Language | latin1_swedish_ci | | CountryLanguage | IsOfficial | latin1_swedish_ci | +-----------------+----------------+-------------------+ 14 rows in set (0.01 sec) Copyright© 2012, Oracle. All rights reserved.
25.
テーブルの文字コードの確認方法 (4) mysql> select
table_schema, table_name, column_name, collation_name from information_schema.columns where collation_name not like 'latin%' and table_schema not in ('mysql', 'information_schema', 'performance_schema'); Empty set (0.00 sec) Copyright© 2012, Oracle. All rights reserved.
26.
<Insert Picture Here> オプション
Copyright© 2012, Oracle. All rights reserved.
27.
文字コード関係のオプション ●
character_set_server … データベースの文字コードのデ フォルトになる ● character_set_database … データベースの文字コード。 テーブルの文字コードのデフォルトになる。 CREATE DATABASE 実行時に指定したものと同じ。 ● character_set_connection … クライアントごとに設定可 能な文字コード。 SQL の評価時に適用される。 ● character_set_client … クライアントから送信される文字 データの文字コード。 ● character_set_results … クライアントへ送信される結果 に含まれる文字データの文字コード。 ● character_set_system … テーブル名などの文字コード。 常に utf8 。 ● character_set_filesystem … ファイルシステムへアクセ スする際に用いられる文字コード。 Copyright© 2012, Oracle. All rights reserved.
28.
照合順序関係のオプション ●
collation_server … データベースの照合順序のデ フォルトになる。 ● collation_database … データベースの照合順序。 テーブルの照合順序のデフォルトになる。 CREATE DATABASE 実行時に指定したものと同じ。 ● collation_connection … クライアントごとに設定可 能な照合順序。 SQL の評価時に適用される。 Copyright© 2012, Oracle. All rights reserved.
29.
skip_character_set_client_handshake ●
クライアントが指定した文字コードを無視してサー バーが指定した文字コードを使用 ● C API や PHP 利用時に便利 ● Connector/J では効かないので注意 Copyright© 2012, Oracle. All rights reserved.
30.
default_character_set ●
古いオプションなのでサーバーでは利用しないよう ● MySQL 5.5 で廃止 ● クライアントでは現在も利用中 Copyright© 2012, Oracle. All rights reserved.
31.
<Insert Picture Here> ドライバ
Copyright© 2012, Oracle. All rights reserved.
32.
C API mysql =
mysql_init(NULL); if (!mysql_real_connect(mysql, NULL, "user", "password", "db", 3306, NULL, 0)) { printf("Cannot connect: %s", mysql_error(mysql)); goto err; }; if (mysql_set_character_set(mysql, "utf8")) goto err; Copyright© 2012, Oracle. All rights reserved.
33.
PHP ●
モジュールごとに指定法が異なる ● MySQL 拡張モジュール( mysql ) … mysql_set_charset() ま たは SET NAMES ● MySQL 改良型拡張モジュール( mysqli ) … mysqli_set_charset() または mysqli::set_charset() または SET NAMES ● PDO … SET NAMES <?php $dbh = mysql_connect('hostname:3306', 'user', 'password'); if (!$dbh) { die('Failed to connect MySQL Server: ' . mysql_error()); } if(!mysql_set_charset('utf8', $dbh)) { die('Failed to change charset.'); } Copyright© 2012, Oracle. All rights reserved.
34.
Perl ●
mysql_enable_utf8 属性を指定して、 UTF-8 フラグ が有効な文字列を使う。 ● mysql_enable_utf8 属性を指定せず、 MySQL Server から受け取った文字列を decode() 、 MySQL Server へ渡す文字列を encode() する。 my $dbh = DBI->connect( "DBI:mysql:database=db_name;host=hostname", "user", "password", { RaiseError => 1, mysql_enable_utf8=>1 }); Copyright© 2012, Oracle. All rights reserved.
35.
Java ( Connector/J
) ● 文字コードは characterEncoding プロパティで指定 ● 指定がない場合には接続先の character_set_server により決 定。接続後 SET NAMES をドライバが実行。 ● --skip-character-set-client-handshake は効かない ● characterEncoding が何であれ Java の文字列は ucs2 に変換される。 Class.forName("com.mysql.jdbc.Driver"); Properties props = new Properties(); props.setProperty("user", "mikiya"); props.setProperty("password", "mikiya's password"); props.setProperty("characterEncoding", "UTF-8"); conn = DriverManager.getConnection(url, props); Copyright© 2012, Oracle. All rights reserved.
36.
Ruby #!/usr/bin/ruby -Ks
: my = Mysql.init() my.options(Mysql::SET_CHARSET_NAME, 'cp932') my.real_connect('127.0.0.1', 'user', 'password', 'db') res = my.query('SELECT some_str_col FROM some_tbl WHERE...'); res.each do |row| puts row[0] # シフト JIS ( Cp932 )で出力されま す。 : end Copyright© 2012, Oracle. All rights reserved.
37.
<Insert Picture Here> 文字コード関係の トラブル
Copyright© 2012, Oracle. All rights reserved.
38.
文字化けの原因と対策 ●
実際のデータと文字コードが一致していないと化け る。 ● 接続用の文字コードは問題ないか? – アプリケーションが期待している文字コードとドライバの文 字コードは同じか? ● 端末の文字コードは問題ないか? ● テーブル内のデータは問題ないか? Copyright© 2012, Oracle. All rights reserved.
39.
LOAD DATA INFILE/SELECT … INTO OUTFILE ●
LOAD DATA INFILE ● ファイルの文字コードが character_set_database になってい ることを期待している ● SET character_set_database = charset_name ● テーブルの文字コードと同じ場合には binary を指定する ● mysqlimport を使う ● SELECT … INTO OUTFILE ● デフォルトでは文字コード変換しない – LOAD DATA で読むときは binary を指定すると良い ● SELECT … INTO OUTOFILE 'file_name' CHARACTER SET charset_name ... Copyright© 2012, Oracle. All rights reserved.
40.
latin1 で格納されている? ●
セッションの文字コードもテーブルの文字コードも latin1 の場合、文字コードの変換が起きないので、 文字化けも起きない。 ● 照合順序が狂ってしまう (latin1_swedish_ci を用い て 1 バイトずつ比較されてしまう ) ● 本来の文字コードを指定して接続すると , 文字化け してしまう Copyright© 2012, Oracle. All rights reserved.
41.
latin1 で格納されている?(つづき) mysql> set
names latin1; Query OK, 0 rows affected (0.00 sec) mysql> create table t (a char(30) character set latin1); Query OK, 0 rows affected (0.00 sec) mysql> insert into t values(' これはテストです。 '); Query OK, 1 row affected (0.00 sec) mysql> select * from t; +-----------------------------+ | a | +-----------------------------+ | これはテストです。 | +-----------------------------+ 1 row in set (0.00 sec) Copyright© 2012, Oracle. All rights reserved.
42.
5C 問題 Shift_JIS の2バイト目が
0x5C (¥)であることに起 因する問題。リテラルとして解釈すると 0x5C がエス ケープ文字として扱われてしまう。 mysql> set names sjis; mysql> set names latin1; Query OK, 0 rows Query OK, 0 rows affected (0.00 sec) affected (0.00 sec) mysql> select ' 表 abc'; mysql> select ' 表 abc'; +-------+ +------+ | 表 abc | | 病 bc | +-------+ +------+ | 表 abc | | 病 bc | +-------+ +------+ 1 row in set (0.00 sec) 1 row in set (0.00 sec) Copyright© 2012, Oracle. All rights reserved.
43.
ラウンドトリップ変換 mysql> create table
t (a char(1) character set eucjpms); Query OK, 0 rows affected (0.01 sec) mysql> insert into t values(unhex('8FA2B7')); Query OK, 1 row affected (0.01 sec) mysql> select hex(a) from t; +--------+ | hex(a) | +--------+ | 8FA2B7 | +--------+ 1 row in set (0.00 sec) mysql> select hex(convert(convert(a using cp932) using eucjpms)) from t; +----------------------------------------------------+ | hex(convert(convert(a using cp932) using eucjpms)) | +----------------------------------------------------+ | A1C1 | +----------------------------------------------------+ 1 row in set (0.00 sec) Copyright© 2012, Oracle. All rights reserved.
44.
<Insert Picture Here> まとめ
Copyright© 2012, Oracle. All rights reserved.
45.
まとめ ●
MySQL で利用可能な日本語対応文字コードの種類 ● MySQL はカラムごと、セッションごとに文字コー ドを指定可能 ● 文字コードが異なる場合には自動変換 ● 自動変換が起きないようにするのが理想 ● 使用するプログラミング言語にあわせて、正しく文字コードを指 定する ● 迷ったらすべて utf8 で統一する ● SHOW コマンドや INFORMATION_SCHEMA で使 用中の文字コードを確認 Copyright© 2012, Oracle. All rights reserved.
46.
46
宣伝 ● 好評につき「エキスパートのための MySQL [運 用+管理]トラブルシューティングガイド」 近日増 刷予定 !! ● 様々な角度から MySQL のトラブルを解析するのに役立つ書籍 です。ぜひ安心な DBA 生活のお供に一冊どうぞ。 ● Contents ● 第 1 章 MySQL の概要 ● 第 2 章 開発時における問題 ● 第 3 章 MySQL の状態を見る ● 第 4 章 DTrace ● 第 5 章 運用中に起きる諸問題 ● 第 6 章 堅牢な運用を実現するために ● 第 7 章 ソースコードのビルド Copyright© 2012, Oracle. All rights reserved.
47.
<Insert Picture Here>
Copyright© 2012, Oracle. All rights reserved.
48.
Copyright© 2012, Oracle.
All rights reserved.
49.
49
Copyright© 2012, Oracle. All rights reserved.
Download