Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
MySQLユーザ会のこれまでとこれから / MyNA past and future
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
とみたまさひろ
August 26, 2020
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MySQLユーザ会のこれまでとこれから / MyNA past and future
とみたまさひろ
August 26, 2020
More Decks by とみたまさひろ
See All by とみたまさひろ
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
1.9k
文字列の並び順 / Unicode Collation
tmtms
4
1.2k
夢の印税生活 / Life on Royalties
tmtms
0
660
文字列の並び順 / String Collation
tmtms
1
270
日本MySQLユーザ会ができるまで / making MyNA
tmtms
1
1.1k
Ruby on Browser - RubyWorld Conference 2024
tmtms
1
1.7k
Ruby on Browser
tmtms
1
2.4k
私のRSpecの書き方 / How I write RSpec
tmtms
5
2.3k
ショートカットと端末 / shortcut & terminal
tmtms
2
1.1k
Other Decks in Technology
See All in Technology
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
150
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
450
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
300
ASTを使って影響範囲を特定する
nealle
0
140
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
omasushiというライブラリを作った
polidog
PRO
0
200
Omarchy Quattro の日本語設定周り
simosako
2
140
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
2.6k
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
320
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
8
7.8k
Webとヘルスデータ
yukukotani
1
370
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
1
460
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
How STYLIGHT went responsive
nonsquared
100
6.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
620
So, you think you're a good person
axbom
PRO
2
2.1k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
820
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
690
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
Mind Mapping
helmedeiros
1
350
Building an army of robots
kneath
306
46k
Code Reviewing Like a Champion
maltzj
528
40k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
Transcript
MySQLユーザ会の MySQLユーザ会の これまでとこれから これまでとこれから MySQL Technology Cafe #9 2020-08-26 とみたまさひろ
1
自己紹介 自己紹介 とみたまさひろ 日本MySQLユーザ会の名ばかり代表 文字化け担当 Ruby / メール https://twitter.com/tmtms https://tmtms.hatenablog.com
2
最近の活動 その1 最近の活動 その1 mrubyudf mrubyudf Ruby で MySQL の
UDF を書くためのツール https://github.com/tmtm/mrubyudf https://tmtms.hatenablog.com/entry/202005/mrubyud 3
最近の活動 その2 最近の活動 その2 MySQL Parameters MySQL Parameters / エラーメッセージ追加
show variables 追加 プラグイン/コンポーネントのパラメータも追加 https://mysql-params.tmtms.net 5.0〜8.0 8.0.* 4
最近の活動 その3 最近の活動 その3 MySQL徹底入門第4版 MySQL徹底入門第4版 5章「ユーザー管理」 11章「文字コードと日本語環境」 など、全体の約 1/10
https://www.seshop.com/product/detail/23085 5
MySQLユーザ会ができるまで MySQLユーザ会ができるまで 6
記憶が怪しいので嘘かもしれません 7
1997年 1997年 8
会社の内製ツール作成&メンテ 会社で使ってたDBがInf◯rmix(伏せ字)だった ESQL/C - C に SQL を埋め込む謎言語 メッチャ使いづらい 9
「普通にCから使える無料のDBないかなー」 10
MySQL と Postgres95 を発見 当時 Google は無かったらしい どうやって探したんだっけ… 11
テキトーに速度測ってみたら MySQL の方が速かった 「じゃあ MySQL でいいや」 「英語苦手だけど もあるし」 (廣川類さん 翻訳)
日本語マニュアル @rui_hi 12
しかし実はその日本語マニュアルの MySQL の バージョンは古かった… 13
しかたなく英語のマニュアルを読む… 「英語わからん」 「訳しながら読んでると3行前のを忘れる」 「訳した文を書きながら読むか…」 14
マニュアルの全文訳完成 マニュアルの全文訳完成 1997/10 質はそれなり 「せっかくだからウェブに公開しよう」 (たしか Monty にメールで公開許可もらったはず…) 15
日本語を検索すると結果がおかしい (当時のUNIXではEUC-JPが主流) 16
デフォルトの latin1 だと À(C0) = Á(C1) = Â(C2)… = à(E0)
= á(E1) = â(E2)… 17
EUC-JPの日本語文字は 0xA1〜0xFE だ(A4C0) = ち(A4C1) = ぢ(A4C2)… = め(A4E0) =
も(A4E1) = ゃ(A4E2)… 18
「latin1 じゃなくて binary を使えば解決!」 (binary はすべての文字を区別) 19
ところが LIKE "%海%" で「続く」がマッチ! 20
「%海%」: * B3 A4 * 「続く」: C2 B3 A4 AF
21
「バイト単位の比較ではダメだ…」 LIKE で文字単位にマッチングさせるパッチを作成 22
日本語 EUC パッチ誕生 日本語 EUC パッチ誕生 1997/11 文字コード名は jeuc 23
1998年 1998年 24
個人宛にメールで問い合わせが来るけど 情報が個人間に閉じるのがもったいない 「誰かメーリングリスト作ってくれないかなー」 とウェブページに書いたら 25
「作ってみた」 by ソフトエージェンシー 26
メーリングリスト発足 メーリングリスト発足 1998/1 27
当時のフリーソフトウェア界隈のMLは 初心者に厳しくて殺伐としてた それは嫌だったのでゆるふわなML運営 28
メーリングリストで「シフトJISを使いたい」 29
シフトJISは2バイト目に 5C(\) がある 表(95 5C) 「十倍の能力が噂の表計算ソフト」 「表n」→「95 \ n」→「95 改行」
LIKE だけじゃなくて文字列全般的な考慮が必要 30
似たようなマルチバイトcharset BIG5 があったので それを真似てシフトJIS対応パッチを作成 31
UJIS&SJIS対応パッチ誕生 UJIS&SJIS対応パッチ誕生 1998/3 この頃から jeuc から ujis に名前を変えたらしい 当時は ujis
または eucjp が一般的だった (ujis と sjis で韻を踏んでるし…) 32
3.21.30 にパッチが取り込まれる 3.21.30 にパッチが取り込まれる 1998/5 パッチをあてなくても普通に日本語が使えるように リリース頻度が早くてパッチのメンテも大変だったので パッチを送ったら取り込まれた 33
MySQLで日本語が使えてるのは私のおかげ(?) (その後ユニコード対応時に実装され直したけど) 34
でもその後も configure --with-charset=ujis でエラー になるとかあったらしい パッチが取り込まれたといっても安心できない… 35
MySQL/Ruby MySQL/Ruby 1998/8 1998年頃から Ruby を使い始めたらしい Perl を使ってたけどCライブラリとのバインディングが 作りにくかったので Ruby
を使い始めた Ruby の MySQL ライブラリが無かったので作った 36
RailsとかでMySQLが使えてるのは私のおかげ(?) (今はもう使われてないけど) 37
2000年 2000年 38
MLの過去ログをウェブで公開したい 39
どこのサーバー使おうか せっかくだからドメイン名とる? 「日本MySQLユーザ会」とかでっちあげて mysql.gr.jp とっちゃえ 40
日本MySQLユーザ会 発足 日本MySQLユーザ会 発足 2000/3 ドメイン名を取るためには 代表者を決めないといけないので 流れで自分が代表者に 41
略称候補は色々あったけど ということで MyNA に (当時は PostgreSQL がメジャーだった) MySQLって、日本じゃマイナー (MINOR)だよね。それは昔の話さ。 と言える日をまつ人の集団。
http://www.mysql.gr.jp/mysqlml/mysql/msg/1730 42
MyNA の目的 MyNA の目的 日本での MySQL の普及を図る。 ユーザ間のコミュニケーションを図る。 MySQL の日本語化の検証/開発を行なう。
43
ユーザ会発足後 ユーザ会発足後 44
MySQL徹底入門 MySQL徹底入門 2000/4 に出版社から打診(早! 2001/1 発売 45
MySQL 3.23 リリース MySQL 3.23 リリース 2001/1 46
MySQL 4.0 リリース MySQL 4.0 リリース 2003/3 47
MySQL 4.1 リリース MySQL 4.1 リリース 2004/10 文字コードまわりの突然の変更! 48
Unicode サポート カラム毎に文字コード指定可能 接続に合わせてサーバー側で文字コード変換 バージョン 0.1 しか違わないのに… 文字コード変換まわりで日本語の闇が表面化 「JISに無い文字が消える」 MyNA
でパッチ作成したり 49
MySQL 5.0 リリース MySQL 5.0 リリース 2005/10 50
MySQL 5.1 リリース MySQL 5.1 リリース 2008/11 51
MySQL 5.5 リリース MySQL 5.5 リリース 2010/12 utf8mb4 追加 52
MySQL 5.6 リリース MySQL 5.6 リリース 2013/2 utf8mb4_unicode_520_ci 53
MySQL 5.7 リリース MySQL 5.7 リリース 2015/10 54
MySQL 8.0 MySQL 8.0 リリース リリース 2018/4 デフォルトが utf8mb4 に
文字化けさよなら utf8mb4_0900_ai_ci utf8mb4_0900_as_ci utf8mb4_0900_as_cs utf8mb4_ja_0900_as_cs utf8mb4_ja_0900_as_cs_ks 55
これから これから 56
MyNA の目的 MyNA の目的 日本での MySQL の普及を図る。 ユーザ間のコミュニケーションを図る。 MySQL の日本語化の検証/開発を行なう。
57
日本での MySQL の普及を図る。 日本での MySQL の普及を図る。 十分メジャー もうマイナーじゃない 58
MySQL の日本語化の検証/開発を行なう。 MySQL の日本語化の検証/開発を行なう。 最近はだいたい問題ない 4.1 以降は文字コードまわりは安定してる 59
ユーザ間のコミュニケーションを図る。 ユーザ間のコミュニケーションを図る。 これか!? 60
イベントは盛ん イベントは盛ん 主に sakaik さんと yoku0825 さんとオラクルさん 61
オンラインコミュニケーション オンラインコミュニケーション 62
いまどきメーリングリストはないよね いまどきメーリングリストはないよね メーリングリストの流量 63
Slack ? Slack ? 外部サービスに依存するのは避けたい 登録しないと見れないのもアレ 64
考え中 65
おわり 66