rabbit-slide-tommy-nseg49 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4140d1cc653c6a0ddb98a4e30bab0d455a4de6b0
4
+ data.tar.gz: a4e8e425cf3cb4a54c447d1f6eaa4ba83ec83fb0
5
+ SHA512:
6
+ metadata.gz: 9865e0e74b05eb327128f924930b62e0bd88ce2a8f551b6511b76b9bea0e259f895dfaeba9f1337297f86aad803c03fef20c2613c43d85a3828733deca37eff6
7
+ data.tar.gz: 23cb8b5463ec9710cf11900bf9069e502aa1b91c1df8a472a2ef0d79193d9700c1bd7e931a0b5457987488c96715d07b2238077c04ff6ca580776f9835ca5127
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ mysql.rab
Binary file
Binary file
@@ -0,0 +1,24 @@
1
+ = MySQLの始め方
2
+
3
+ MySQLの始め方
4
+
5
+ == 作者向け
6
+
7
+ === 表示
8
+
9
+ rake
10
+
11
+ === 公開
12
+
13
+ rake publish
14
+
15
+ == 閲覧者向け
16
+
17
+ === インストール
18
+
19
+ gem install rabbit-slide-tommy-nseg49
20
+
21
+ === 表示
22
+
23
+ rabbit rabbit-slide-tommy-nseg49.gem
24
+
@@ -0,0 +1,24 @@
1
+ = MySQLの始め方
2
+
3
+ MySQLの始め方
4
+
5
+ == 作者向け
6
+
7
+ === 表示
8
+
9
+ rake
10
+
11
+ === 公開
12
+
13
+ rake publish
14
+
15
+ == 閲覧者向け
16
+
17
+ === インストール
18
+
19
+ gem install rabbit-slide-tommy-nseg48
20
+
21
+ === 表示
22
+
23
+ rabbit rabbit-slide-tommy-nseg48.gem
24
+
@@ -0,0 +1,9 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ Rabbit::Task::Slide.new do |task|
6
+ # task.spec.files += Dir.glob("doc/**/*.*")
7
+ # task.spec.files -= Dir.glob("private/**/*.*")
8
+ # task.spec.add_runtime_dependency("YOUR THEME")
9
+ end
Binary file
@@ -0,0 +1,18 @@
1
+ ---
2
+ id: nseg49
3
+ base_name: mysql
4
+ tags: []
5
+ presentation_date:
6
+ version: 1.0.0
7
+ licenses: []
8
+ slideshare_id:
9
+ speaker_deck_id:
10
+ ustream_id:
11
+ vimeo_id:
12
+ author:
13
+ markup_language: :rd
14
+ name: TOMITA Masahiro
15
+ email: tommy@tmtm.org
16
+ rubygems_user: tommy
17
+ slideshare_user:
18
+ speaker_deck_user:
Binary file
@@ -0,0 +1,540 @@
1
+ = MySQLの始め方
2
+
3
+ # : subtitle
4
+ # サブタイトル
5
+ : author
6
+ とみたまさひろ
7
+ # : institution
8
+ # 所属
9
+ : content-source
10
+ NSEG #49 MySQL Talk in 長野
11
+ : date
12
+ 2014-03-15
13
+ : allotted-time
14
+ 30m
15
+ : theme
16
+ clear-blue+
17
+
18
+ = 自己紹介
19
+
20
+ # image
21
+ # src = icon.jpg
22
+ # relative-height = 30
23
+ # align = right
24
+ # relative-margin-top = -30
25
+ # relative-margin-right = -10
26
+
27
+ * とみた まさひろ
28
+ * プログラマー (((*Ruby*)) & C)
29
+ * http://((*tmtms*)).hatenablog.com
30
+ * http://twitter.com/((*tmtms*))
31
+ * https://github.com/((*tmtm*))
32
+ * 日本MySQLユーザ会代表
33
+
34
+ = MySQL徹底入門(('note:(の一部)'))
35
+
36
+ # image
37
+ # src = MySQL_Book.jpg
38
+ # relative_height = 100
39
+
40
+ = MySQL辞典(('note:(の一部)'))
41
+
42
+ # image
43
+ # src = MySQL_Dic.jpg
44
+ # relative_height = 100
45
+
46
+ = OSS貢献者賞
47
+
48
+ # image
49
+ # src = OSS貢献者賞.jpg
50
+ # relative_height = 100
51
+
52
+ = ((*MySQL*))とは
53
+
54
+ = 「世界でもっとも普及している\nオープンソースデータベース」\n(('note:http://www-jp.mysql.com/ より'))
55
+
56
+ = オープンソース(((*GPL*)))なRDBMS
57
+
58
+ = ((*商用版*))もあり\nMySQL Enterprise Edition\nby ((*ORACLE*))
59
+
60
+ = バージョン
61
+
62
+ = バージョン
63
+
64
+ * X.Y.Z
65
+ * 最新安定版は 5.6.16
66
+ * X.Y がバージョン
67
+ * Z はリリース毎に増加
68
+ * X.Y.0 が正式リリース((*ではない*))
69
+
70
+ = 使ってみよう
71
+
72
+ = たいていの Linux には含まれてる
73
+
74
+ = でもちと古い
75
+
76
+ = 今から始めるなら((*5.6.x*))
77
+
78
+ = ((*公式バイナリ*))がおすすめ
79
+
80
+ = ((*Linux*))\nWindows\nOS X\nSolaris\nFreeBSD
81
+
82
+ = ダウンロード
83
+
84
+ http://dev.mysql.com/downloads/mysql/
85
+
86
+ # image
87
+ # src = Screenshot_mysql.png
88
+ # relative_height = 100
89
+
90
+ = インストール
91
+
92
+ # cd /usr/local
93
+ # tar xf /tmp/mysql-5.6.16-linux-glibc2.5-i686.tar.gz
94
+ # mv mysql-5.6.16-linux-glibc2.5-i686 mysql
95
+ # cd mysql
96
+ # ./scripts/mysql_install_db
97
+ # useradd -r mysql
98
+ # chown -R mysql:mysql .
99
+
100
+ = 起動する前に
101
+
102
+ = 設定ファイル
103
+
104
+ = my.cnf
105
+
106
+ * この順番に読まれてマージ(重複は後勝ち)
107
+ * /etc/my.cnf
108
+ * /etc/mysql/my.cnf
109
+ * /usr/local/mysql/etc/my.cnf (('tag:small:(公式バイナリ)'))
110
+ * $MYSQL_HOME/my.cnf
111
+ * --defaults-extra-file で指定したもの
112
+ * $HOME/.my.cnf
113
+
114
+ = 思わぬものを読んでることも!
115
+
116
+ = 指定したものだけ読む
117
+
118
+ * ((*--defaults-file*))
119
+ * コマンドライン引数の先頭に指定
120
+ * 途中に書いてもエラー
121
+
122
+ = 一旦起動すると後で変更するのが面倒なパラメータもあるので注意
123
+
124
+ = my.cnf
125
+
126
+ [mysqld]
127
+ user = mysql
128
+ character-set-server = utf8
129
+ log-error = /var/log/mysqld.err
130
+ skip-name-resolve
131
+ innodb-file-per-table
132
+ sql-mode = TRADITIONAL
133
+
134
+ [mysql]
135
+ default-character-set = utf8
136
+ show-warnings
137
+
138
+ = 起動
139
+
140
+ # /usr/local/mysql/bin/mysqld &
141
+
142
+ # /usr/local/mysql/bin/mysqld_safe &
143
+
144
+ # /usr/local/mysql/support-files/
145
+ mysql.server start
146
+
147
+ = 停止
148
+
149
+ % /usr/local/mysql/bin/mysqladmin
150
+ -u root shutdown
151
+
152
+ # /usr/local/mysql/support-files/
153
+ mysql.server stop
154
+
155
+ # kill <PID of mysqld>
156
+
157
+ = kill -9\n((*ダメ!絶対!*))
158
+
159
+ = MySQLはネットワークサーバー
160
+
161
+ = サーバーとクライアント
162
+
163
+ * サーバー
164
+ * mysqld
165
+
166
+ * クライアント
167
+ * mysql
168
+ * mysqladmin
169
+ * mysqldump
170
+ * その他各種アプリ
171
+
172
+ = 待ち受けポート
173
+
174
+ * TCP/IP 3306
175
+
176
+ * UNIXソケット /tmp/mysql.sock
177
+
178
+ = アクセスするためには認証が必要
179
+
180
+ = ユーザー管理
181
+
182
+ = OSのユーザーとは(('note:(ほぼ)'))無関係
183
+
184
+ = username@client
185
+
186
+ = 初期状態で\nroot@localhost\nroot@127.0.0.1\nroot@::1\nroot@ホスト名
187
+
188
+ = 全部((*パスワードなし*))
189
+
190
+ = パスワード設定
191
+
192
+ % mysql -u root
193
+
194
+ [自分自身のパスワード]
195
+ mysql> set password = password('hogehoge');
196
+
197
+ [他のユーザーのパスワード]
198
+ mysql> set password for root@'127.0.0.1' =
199
+ password('fugafuga');
200
+
201
+ mysql> Ctrl-D
202
+
203
+ = パスワード設定後
204
+
205
+ % mysql -u root
206
+ % ERROR 1045 (28000): Access denied for user
207
+ 'root'@'localhost' (using password: NO)
208
+
209
+ % mysql -u root -p
210
+ Enter password:
211
+ mysql>
212
+
213
+ % mysql -u root -phogehoge (-pの後に空白不要)
214
+ mysql>
215
+
216
+ = 匿名ユーザー
217
+
218
+ ユーザー登録してなくてもアクセス可能
219
+
220
+ % mysql -u tommy
221
+ mysql> show databases;
222
+ +--------------------+
223
+ | Database |
224
+ +--------------------+
225
+ | information_schema |
226
+ | test |
227
+ +--------------------+
228
+
229
+ = ユーザー一覧
230
+
231
+ % mysql -u root
232
+ mysql> select user,host from mysql.user;
233
+ +------+-----------+
234
+ | user | host |
235
+ +------+-----------+
236
+ | root | 127.0.0.1 |
237
+ | root | ::1 |
238
+ | | localhost |
239
+ | root | localhost |
240
+ | | x220 |
241
+ | root | x220 |
242
+ +------+-----------+
243
+
244
+ = mysql_secure_installation
245
+
246
+ * root のパスワード設定
247
+ * 匿名ユーザーの削除
248
+ * リモートからの root アクセス拒否
249
+ * test データベース削除
250
+
251
+ = mysql_secure_installation
252
+
253
+ % mysql_secure_installation
254
+ ...
255
+ % mysql -u root
256
+ mysql> select user,host from mysql.user;
257
+ +------+-----------+
258
+ | user | host |
259
+ +------+-----------+
260
+ | root | 127.0.0.1 |
261
+ | root | ::1 |
262
+ | root | localhost |
263
+ +------+-----------+
264
+
265
+ = 不要ユーザーの削除
266
+
267
+ % mysql -u root
268
+ mysql> drop user root@'127.0.0.1';
269
+ mysql> drop user root@'::1';
270
+ mysql> drop user root@ホスト名;
271
+ mysql> drop user ''@localhost;
272
+ mysql> drop user ''@ホスト名;
273
+
274
+ = ユーザー作成
275
+
276
+ % mysql -u root -p
277
+ mysql> create user hoge@localhost
278
+ identified by 'パスワード';
279
+
280
+ = 権限付与
281
+
282
+ mysql> grant 権限 on DB名.TBL名
283
+ to user@client;
284
+
285
+ = 権限
286
+
287
+ All |
288
+ Alter |
289
+ Alter routine |
290
+ Create |
291
+ Create routine |
292
+ Create tablespace |
293
+ Create temporary tables |
294
+ Create user |
295
+ Create view |
296
+ Delete |
297
+ Drop |
298
+ Event |
299
+ Execute |
300
+ File |
301
+ Grant option |
302
+ Index |
303
+ Insert |
304
+ Lock tables |
305
+ Process |
306
+ Proxy |
307
+ References |
308
+ Reload |
309
+ Replication client |
310
+ Replication slave |
311
+ Select |
312
+ Show databases |
313
+ Show view |
314
+ Shutdown |
315
+ Super |
316
+ Trigger |
317
+ Update |
318
+ Usage
319
+
320
+ = 権限
321
+
322
+ * システム全体
323
+ * データベース
324
+ * テーブル
325
+ * カラム
326
+
327
+ = たいていはこれで事足りるかも
328
+
329
+ 特定のDBに対して全権付与
330
+
331
+ mysql> grant all on DB名.*
332
+ to user@client;
333
+
334
+ = 権限剥奪
335
+
336
+ mysql> revoke 権限 on DB名.TBL名
337
+ from user@client;
338
+
339
+ = localhost と 127.0.0.1 は違う!
340
+
341
+ = localhost と 127.0.0.1
342
+
343
+ * 初心者はだいたいハマる
344
+ * localhost は UNIXソケット\n/tmp/mysql.sock
345
+ * mysql -u root -h localhost
346
+ * 127.0.0.1 は TCP/IP
347
+ * mysql -u root -h 127.0.0.1
348
+
349
+ = 日本語
350
+
351
+ = 文字コード
352
+
353
+ = 初心者は黙って((*utf8*))\n(utf8mb4でも可)
354
+
355
+ = my.cnf
356
+
357
+ [mysqld]
358
+ user = mysql
359
+ character-set-server = utf8
360
+ log-error = /var/log/mysqld.err
361
+ skip-name-resolve
362
+ innodb-file-per-table
363
+ sql-mode = TRADITIONAL
364
+
365
+ [mysql]
366
+ default-character-set = utf8
367
+ show-warnings
368
+
369
+ = charset と collation
370
+
371
+ = charset
372
+
373
+ * コードと文字との対応 (「あ」= E3 81 82)
374
+ * utf8mb4 : 4バイトUTF-8(MySQL 5.5から)
375
+ * utf8 : 3バイトUTF-8
376
+ * eucjpms, cp932, ...
377
+
378
+ = charset
379
+
380
+ mysql> show charset;
381
+ +----------+-----------------------------+---------------------+--------+
382
+ | Charset | Description | Default collation | Maxlen |
383
+ +----------+-----------------------------+---------------------+--------+
384
+ | big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
385
+ | dec8 | DEC West European | dec8_swedish_ci | 1 |
386
+ | cp850 | DOS West European | cp850_general_ci | 1 |
387
+ | hp8 | HP West European | hp8_english_ci | 1 |
388
+ | koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |
389
+ | latin1 | cp1252 West European | latin1_swedish_ci | 1 |
390
+ | latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
391
+ | swe7 | 7bit Swedish | swe7_swedish_ci | 1 |
392
+ | ascii | US ASCII | ascii_general_ci | 1 |
393
+ | ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |
394
+ | sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |
395
+ | hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 |
396
+ | tis620 | TIS620 Thai | tis620_thai_ci | 1 |
397
+
398
+ | latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |
399
+ | armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 |
400
+ | utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
401
+ | ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |
402
+
403
+
404
+ = collation
405
+
406
+ * 文字の照合規則
407
+ * utf8_general_ci, utf8_bin, utf8_unicode_ci, ...
408
+
409
+ = collation
410
+
411
+ mysql> show collation;
412
+ +--------------------------+----------+-----+---------+----------+---------+
413
+ | Collation | Charset | Id | Default | Compiled | Sortlen |
414
+ +--------------------------+----------+-----+---------+----------+---------+
415
+ | big5_chinese_ci | big5 | 1 | Yes | Yes | 1 |
416
+ | big5_bin | big5 | 84 | | Yes | 1 |
417
+ | dec8_swedish_ci | dec8 | 3 | Yes | Yes | 1 |
418
+ | dec8_bin | dec8 | 69 | | Yes | 1 |
419
+ | cp850_general_ci | cp850 | 4 | Yes | Yes | 1 |
420
+ | cp850_bin | cp850 | 80 | | Yes | 1 |
421
+ | hp8_english_ci | hp8 | 6 | Yes | Yes | 1 |
422
+ | hp8_bin | hp8 | 72 | | Yes | 1 |
423
+ | koi8r_general_ci | koi8r | 7 | Yes | Yes | 1 |
424
+ | koi8r_bin | koi8r | 74 | | Yes | 1 |
425
+ | latin1_german1_ci | latin1 | 5 | | Yes | 1 |
426
+ | latin1_swedish_ci | latin1 | 8 | Yes | Yes | 1 |
427
+
428
+ | utf8_general_ci | utf8 | 33 | Yes | Yes | 1 |
429
+ | utf8_bin | utf8 | 83 | | Yes | 1 |
430
+ | utf8_unicode_ci | utf8 | 192 | | Yes | 8 |
431
+ | utf8_icelandic_ci | utf8 | 193 | | Yes | 8 |
432
+ | utf8_latvian_ci | utf8 | 194 | | Yes | 8 |
433
+ | utf8_romanian_ci | utf8 | 195 | | Yes | 8 |
434
+
435
+
436
+ = utf8_general_ci
437
+
438
+ * charset utf8 のデフォルトの collation
439
+ * ASCII/ラテン文字の大文字小文字を区別しない
440
+ * A = a
441
+
442
+ = utf8_bin
443
+
444
+ * char(n) binary として宣言した時の collation
445
+ * すべての文字を区別する
446
+ * A != a
447
+
448
+ = utf8_unicode_ci
449
+
450
+ * Unicode Collation Algorithm (UCA) による collation
451
+ * 大文字/小文字/全角/半角/カタカナ/ひらがな/濁音を区別しない
452
+ * a=A=A(全角)
453
+ * は=ば=ぱ=ハ=バ=パ=ハ
454
+ * (('tag:x_small:http://tmtm.org/tmp/mysql_unicode_collation.html'))
455
+
456
+ = 文字コードが関係するもの
457
+
458
+ * クライアント
459
+ * 接続
460
+ * データベース
461
+ * テーブル
462
+ * カラム
463
+
464
+ = 同じテーブルの((*カラム毎に異なる文字コード*))を指定可能
465
+
466
+ = クライアント-サーバー間で\n((*自動変換*))
467
+
468
+ = ハマりたくなかったら((*utf8*))に統一\n(utf8mb4でも可)
469
+
470
+ = ストレージエンジン
471
+
472
+ = データをディスク(('note:(か何か)'))に保存&取り出すレイヤ
473
+
474
+ = SQLのことなんて(('note:(あんまり)'))知らない
475
+
476
+ = InnoDB / MyISAM / CSV / BLACKHOLE / MEMORY / MRG_MYISAM / ARCHIVE
477
+
478
+ = ((*InnoDB*)) / ((*MyISAM*)) / CSV / BLACKHOLE / MEMORY / MRG_MYISAM / ARCHIVE
479
+
480
+ = 異なるストレージエンジン間で JOIN / Sub SELECT も可
481
+
482
+ = MyISAM
483
+
484
+ * 以前のデフォルトのストレージエンジン
485
+ * システムテーブル(mysql.*)で使用
486
+ * トランザクション、外部キー未対応
487
+ * テーブルロック
488
+ * 全文検索(日本語不可)
489
+ * 位置情報
490
+
491
+ = InnoDB
492
+
493
+ * デフォルトのストレージエンジン
494
+ * トランザクション
495
+ * レコードロック
496
+ * 全文検索(日本語不可) (5.6 から)
497
+ * 位置情報 (5.0 から)
498
+
499
+ = 初心者は黙って((*InnoDB*))
500
+
501
+ = mroonga
502
+
503
+ * コミュニティ版ストレージエンジン
504
+ * 高速日本語全文検索 groonga
505
+ * 位置情報
506
+ * mroonga = groonga ストレージエンジン
507
+ * 毎月肉の日(29日)リリース
508
+
509
+ = sql_mode
510
+
511
+ = MySQL特有の(('note:変な'))挙動を変更
512
+
513
+ = MySQL特有の挙動
514
+
515
+ * カラム長を超えてもエラーにならない
516
+ * 不正な文字があってもエラーにならない
517
+ * 指定されたストレージエンジンがないと代替を使う
518
+ * 日付 0000-00-00, 2014-00-01, 2014-04-31
519
+
520
+ = MySQL特有の挙動
521
+
522
+ * GROUP BY に指定されてないカラムを SELECT, HAVING できる
523
+ * "〜" が文字列リテラル
524
+ * || が論理和
525
+ * 等々
526
+
527
+ = sql_mode
528
+
529
+ * グローバル: my.cnf で指定
530
+ * グローバル: set global sql_mode = XXXX;
531
+ * セッション: set sql_mode = XXXX;
532
+ * (('tag:x_small:http://dev.mysql.com/doc/refman/5.6/en/sql-mode.html'))
533
+
534
+ = まとめ
535
+
536
+ * 設定ファイルに注意
537
+ * 初期状態のアクセス権は危険
538
+ * 文字コードは utf8 or utf8mb4
539
+ * ストレージエンジンは InnoDB
540
+ * MySQL特有の挙動に気をつける
Binary file
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-tommy-nseg49
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - TOMITA Masahiro
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: MySQLの始め方
28
+ email:
29
+ - tommy@tmtm.org
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - MySQL_Book.jpg
36
+ - MySQL_Dic.jpg
37
+ - OSS貢献者賞.jpg
38
+ - README.rd
39
+ - README.rd~
40
+ - Rakefile
41
+ - Screenshot_mysql.png
42
+ - config.yaml
43
+ - icon.jpg
44
+ - mysql.rab
45
+ - pdf/nseg49-mysql.pdf
46
+ homepage: http://slide.rabbit-shocker.org/authors/tommy/nseg49/
47
+ licenses: []
48
+ metadata: {}
49
+ post_install_message:
50
+ rdoc_options: []
51
+ require_paths:
52
+ - lib
53
+ required_ruby_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ requirements: []
64
+ rubyforge_project:
65
+ rubygems_version: 2.2.0.rc.1
66
+ signing_key:
67
+ specification_version: 4
68
+ summary: MySQLの始め方
69
+ test_files: []