rabbit-slide-tommy-nseg49 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []