Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MySQLユーザ会のこれまでとこれから / MyNA past and future
Search
とみたまさひろ
August 26, 2020
Technology
0
110
MySQLユーザ会のこれまでとこれから / MyNA past and future
とみたまさひろ
August 26, 2020
Tweet
Share
More Decks by とみたまさひろ
See All by とみたまさひろ
日本MySQLユーザ会ができるまで / making MyNA
tmtms
1
560
Ruby on Browser - RubyWorld Conference 2024
tmtms
1
1.1k
Ruby on Browser
tmtms
1
1.9k
私のRSpecの書き方 / How I write RSpec
tmtms
5
2k
ショートカットと端末 / shortcut & terminal
tmtms
2
840
文字ときどきRuby / Character and Ruby (NSEG)
tmtms
2
2.2k
文字ときどきRuby / Character and Ruby
tmtms
0
930
Linux用キーリマッパーを作る技術 / How to make Key Remapper
tmtms
0
490
MIMEヘッダエンコーディングは複雑すぎてつらい / MIME header encoding is hard
tmtms
3
1.5k
Other Decks in Technology
See All in Technology
Navigation3でViewModelにデータを渡す方法
mikanichinose
0
220
mrubyと micro-ROSが繋ぐロボットの世界
kishima
2
300
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
フィンテック養成勉強会#54
finengine
0
180
Understanding_Thread_Tuning_for_Inference_Servers_of_Deep_Models.pdf
lycorptech_jp
PRO
0
120
急成長を支える基盤作り〜地道な改善からコツコツと〜 #cre_meetup
stefafafan
0
120
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
280
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
180
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
170
Welcome to the LLM Club
koic
0
170
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
140
なぜ私はいま、ここにいるのか? #もがく中堅デザイナー #プロダクトデザイナー
bengo4com
0
450
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
A Tale of Four Properties
chriscoyier
160
23k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Gamification - CAS2011
davidbonilla
81
5.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Become a Pro
speakerdeck
PRO
28
5.4k
Why You Should Never Use an ORM
jnunemaker
PRO
57
9.4k
Practical Orchestrator
shlominoach
188
11k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Automating Front-end Workflow
addyosmani
1370
200k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
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