|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ç®å½
æè®¸å¤ä¸åçMySQL客æ·ç«¯ç¨åºå¯ä»¥è¿æ¥æå¡å¨ä»¥è®¿é®æ°æ®åºææ§è¡ç®¡çä»»å¡ãä¹å¯ä»¥ä½¿ç¨å ¶å®å·¥å ·ãè¿äºç¨åºä¸ä¸æå¡å¨è¿è¡é讯ä½å¯ä»¥æ§è¡MySQLç¸å ³çæä½ã æ¬ç« ç®è¿°äºè¿äºç¨åºç¶åè¯¦ç»æè¿°äºæ¯ä¸ªç¨åºãæè¿°äºå¦ä½è°ç¨è¿äºç¨åºåå®ä»¬çè§£çé项ãè°ç¨ç¨åºåæå®ç¨åºéé¡¹çæ»ä¿¡æ¯åè§ç¬¬4ç« ï¼MySQLç¨åºæ¦è¿°ã ä¸é¢ç®åååºäºMySQL客æ·ç«¯ç¨åºåå®ç¨å·¥å ·ï¼ · myisampack å缩MyISAMè¡¨ä»¥äº§çæ´å°çåªè¯»è¡¨çä¸ä¸ªå·¥å ·ãåè§8.2èï¼âmyisampackï¼çæå缩ãåªè¯»MyISAM表âã · mysql 交äºå¼è¾å ¥SQLè¯å¥æä»æä»¶ä»¥æ¹å¤çæ¨¡å¼æ§è¡å®ä»¬çå½ä»¤è¡å·¥å ·ãåè§8.3èï¼âmysqlï¼MySQLå½ä»¤è¡å·¥å ·âã · mysqlaccess æ£æ¥è®¿é®ä¸»æºåãç¨æ·ååæ°æ®åºç»åçæéçèæ¬ã · mysqladmin æ§è¡ç®¡çæä½ç客æ·ç¨åºï¼ä¾å¦å建æå 餿°æ®åºï¼éè½½ææè¡¨ï¼å°è¡¨å·æ°å°ç¡¬çä¸ï¼ä»¥åéæ°æå¼æ¥å¿æä»¶ãmysqladminè¿å¯ä»¥ç¨æ¥æ£ç´¢çæ¬ãè¿ç¨ï¼ä»¥åæå¡å¨çç¶æä¿¡æ¯ãåè§8.5èï¼âmysqladminï¼ç¨äºç®¡çMySQLæå¡å¨ç客æ·ç«¯âã · mysqlbinlog ä»äºè¿å¶æ¥å¿è¯»åè¯å¥çå·¥å ·ãå¨äºè¿å¶æ¥å¿æä»¶ä¸å å«çæ§è¡è¿çè¯å¥çæ¥å¿å¯ç¨æ¥å¸®å©ä»å´©æºä¸æ¢å¤ãåè§8.6èï¼âmysqlbinlogï¼ç¨äºå¤çäºè¿å¶æ¥å¿æä»¶çå®ç¨å·¥å ·âã · mysqlcheck æ£æ¥ãä¿®å¤ãåæä»¥åä¼å表ç表维æ¤å®¢æ·ç¨åºãåè§8.7èï¼âmysqlcheckï¼è¡¨ç»´æ¤åç»´ä¿®ç¨åºâã · mysqldump å°MySQLæ°æ®åºè½¬å¨å°ä¸ä¸ªæä»¶ï¼ä¾å¦SQLè¯å¥ætabåéç¬¦ææ¬æä»¶ï¼ç客æ·ç¨åºãå¢å¼ºçå 费软件é¦å ç±Igor Romanenkoæä¾ãåè§8.8èï¼âmysqldumpï¼æ°æ®åºå¤ä»½ç¨åºâã · mysqlhotcopy 彿å¡å¨å¨è¿è¡æ¶ï¼å¿«éå¤ä»½MyISAMæISAM表çå·¥å ·ãåè§8.9èï¼âmysqlhotcopyï¼æ°æ®åºå¤ä»½ç¨åºâã · mysql import 使ç¨LOAD DATA INFILEå°ææ¬æä»¶å¯¼å ¥ç¸å ³è¡¨ç客æ·ç¨åºãåè§8.10èï¼âmysqlimportï¼æ°æ®å¯¼å ¥ç¨åºâã · mysqlshow æ¾ç¤ºæ°æ®åºã表ãå以åç´¢å¼ç¸å ³ä¿¡æ¯ç客æ·ç¨åºãåè§8.11èï¼âmysqlshowï¼æ¾ç¤ºæ°æ®åºã表ååä¿¡æ¯âã · perror æ¾ç¤ºç³»ç»æMySQLé误代ç å«ä¹çå·¥å ·ãåè§8.13èï¼âperrorï¼è§£éé误代ç âã · replace æ´æ¹æä»¶ä¸ææ åè¾å ¥ä¸çå符串çå®ç¨å·¥å ·ãåè§8.14èï¼âreplaceï¼åç¬¦ä¸²æ¿æ¢å®ç¨å·¥å ·âã MySQL ABè¿æä¾äºå¤§éGUIå·¥å ·ç¨äºç®¡çåMySQLæå¡å¨çå ¶å®å·¥ä½ãç¸å ³åºæ¬ä¿¡æ¯åè§ç¬¬4ç« ï¼MySQLç¨åºæ¦è¿°ã æ¯ä¸ªMySQLç¨åºæè®¸å¤ä¸åçé项ã使¯ä¸ªMySQLç¨åºåæä¾ä¸ä¸ª---helpé项ï¼å¯ä»¥ç¨æ¥å ¨é¢æè¿°ç¨åºä¸åçé项ãä¾å¦ï¼å¯ä»¥è¯è¯mysql---helpã 使ç¨mysqlclientåºåæå¡å¨è¿è¡é讯çMySQL客æ·ä½¿ç¨ä¸é¢çç¯å¢åéï¼
使ç¨MYSQL_PWDä¸å®å ¨ãåè§5.8.6èï¼âä½¿ä½ çå¯ç å®å ¨âã å¯ä»¥å¨é项æä»¶ä¸æå¨å½ä»¤è¡ä¸æå®éé¡¹æ¥æ¿æ¢æææ åç¨åºçé»è®¤é项弿æå®çç¯å¢åéçå¼ãåè§4.3èï¼âæå®ç¨åºé项âã myisampackå·¥å ·å¯ä»¥å缩MyISAM表.MYIsampackåå«å缩表ä¸çæ¯ä¸åãé常ï¼myisampackå¯ä»¥å°æ°æ®æä»¶å缩å°40%-70%ã å½ä»¥å使ç¨è¡¨æ¶ï¼è§£å缩åéè¦çä¿¡æ¯è¢«è¯»å ¥å åãå½è®¿é®å ·ä½çè®°å½æ¶æ§è½ä¼æ´å¥½ï¼å ä¸ºä½ åªéè¦è§£å缩ä¸ä¸ªè®°å½ã MySQL使ç¨mmap()对å缩ç表è¿è¡å åæ å°ã妿mmap()ä¸å·¥ä½ï¼MySQLè¿åå°æ®é读/åæä»¶æä½ã 请注æï¼ · 妿ç¨--skip-external-lockingé项è°ç¨mysqldæå¡å¨ï¼å¦æå¨å缩è¿ç¨ä¸è¡¨å¯è½è¢«æ´æ°ï¼è°ç¨myisampack䏿¯ä¸ä¸ªå¥½æ³¨æã · 表å缩åï¼å®å为åªè¯»ãè¿æ¯æ æç(ä¾å¦å½è®¿é®CDä¸çå缩ç表æ¶)ãå 许åå ¥å°å缩ç表ä½äºæä»¬çTODOå表ä¸ï¼ä½ä¼å 级è¾ä½ã · myisampackå¯ä»¥å缩BLOBæTEXTåãæ§çæ¬ISAM表çpack_isamç¨åºä¸å¯ä»¥ã è°ç¨myisampackçæ¹æ³ï¼ shell> myisampack [options] filename ... æä»¶ååºä¸ºç´¢å¼(.MYI)æä»¶çæä»¶åã妿ä¸å¨æ°æ®åºç®å½ï¼åºæå®æä»¶çè·¯å¾åãå 许忽ç¥.MYIæ©å±åã myisampackæ¯æä¸é¢çéé¡¹ï¼ Â· --helpï¼-ï¼ æ¾ç¤ºå¸®å©æ¶æ¯å¹¶éåºã · --backupï¼-b 使ç¨tbl_name.OLDåå¤ä»½è¡¨æ°æ®æä»¶ã · ---debug[=debug_options]ï¼-# [debug_options] åè°è¯æ¥å¿ãdebug_optionså符串é常为'd:t:o,file_name'ã · --forceï¼-f 产çä¸ä¸ªå缩ç表ï¼å³ä½¿å®æ¯åå§è¡¨å¤§ï¼æå¦æä»¥åè°ç¨myisampackçä¸é´æä»¶åå¨ã(myisampackå缩表æ¶å¨æ°æ®åºç®å½ä¸å建ä¸ä¸ªå为tbl_name.TMDçä¸é´æä»¶ã妿ææmyisampackï¼.TMDæä»¶ä¼è¢«å é¤ï¼ãé常æ åµï¼å¦æmyisampackåç°tbl_name.TMDåå¨åéåºå¹¶æç¤ºé误ãç¨--forceï¼myisampackåä¸å®å缩表ã · -join=big_tbl_nameï¼-j big_tbl_name å°å½ä»¤è¡ä¸çææè¡¨èæ¥ä¸ºä¸ä¸ªè¡¨big_tbl_nameãå°è¦è¿æ¥çææè¡¨å¿ é¡»æç¸ççç»æ(ç¸åçåååç±»åï¼ç¸åçç´¢å¼çç)ã · --pack length=lenï¼-p len æå®è®°å½é¿åº¦åå¨å¤§å°ï¼ä»¥åè计ãå¼åºä¸º1ã2æè 3ãmyisampackä¿åææé¿åº¦æé为1ã2æè 3åèçè¡ãå¨å¤§å¤æ°æ£å¸¸æ åµä¸ï¼myisampackå¨å¼å§å缩æä»¶åå¯ä»¥ç¡®å®åç¡®çé¿åº¦å¼ï¼ä½å¨å缩è¿ç¨ä¸å®å¯ä»¥æç¤ºå®å¯è½å·²ç»ä½¿ç¨äºä¸ä¸ªççé¿åº¦ãå¨è¿ç§æ åµä¸ï¼myisampackè¾åºä¸æ¡æç¤ºï¼ä¸æ¬¡ä½ å缩å䏿件æ¶ï¼ä½ å¯ä»¥ä½¿ç¨æ´ççè®°å½é¿åº¦ã · --silentï¼-s æ²é»æ¨¡å¼ãåªæåçéè¯¯æ¶æåè¾åºã · --testï¼-t 没æå®é å°å缩表ï¼åªæ¯æµè¯å缩ã · --tmpdir=pathï¼-T path 使ç¨myisamchkåå»ºä¸´æ¶æä»¶çç®å½ã · --verboseï¼-v åé¿æ¨¡å¼ãåå缩æä½è¿ç¨ç¸å ³ä¿¡æ¯åå ¶ç»æã · --versionï¼-V æ¾ç¤ºçæ¬ä¿¡æ¯å¹¶éåºã · --waitï¼-w å¦æè¡¨æ£ä½¿ç¨åçå¾ å¹¶éè¯ã妿ç¨--skip-external-lockingé项è°ç¨äºmysqldæå¡å¨ï¼å¦æå¨å缩è¿ç¨ä¸è¡¨å¯è½è¢«æ´æ°ï¼è°ç¨myisampack䏿¯ä¸ä¸ªå¥½æ³¨æã ä¸é¢ç顺åºå½ä»¤è¯´æäºå ¸åç表å缩ä¼è¯ï¼ shell> ls -l station.* -rw-rw-r-- 1 monty my 994128 Apr 17 19:00 station.MYD
-rw-rw-r-- 1 monty my 53248 Apr 17 19:00 station.MYI
-rw-rw-r-- 1 monty my 5767 Apr 17 19:00 station.frm
shell> myisamchk -dvv station
MyISAM file: station
Isam-version: 2
Creation time: 1996-03-13 10:08:58
Recover time: 1997-02-02 3:06:43
Data records: 1192 Deleted blocks: 0
Datafile parts: 1192 Deleted data: 0
Datafile pointer (bytes): 2 Keyfile pointer (bytes): 2
Max datafile length: 54657023 Max keyfile length: 33554431
Recordlength: 834
Record format: Fixed length
table description:
Key Start Len Index Type Root Blocksize Rec/key
1 2 4 unique unsigned long 1024 1024 1
2 32 30 multip. text 10240 1024 1
Field Start Length Type
1 1 1
2 2 4
3 6 4
4 10 1
5 11 20
6 31 1
7 32 30
8 62 35
9 97 35
10 132 35
11 167 4
12 171 16
13 187 35
14 222 4
15 226 16
16 242 20
17 262 20
18 282 20
19 302 30
20 332 4
21 336 4
22 340 1
23 341 8
24 349 8
25 357 8
26 365 2
27 367 2
28 369 4
29 373 4
30 377 1
31 378 2
32 380 8
33 388 4
34 392 4
35 396 4
36 400 4
37 404 1
38 405 4
39 409 4
40 413 4
41 417 4
42 421 4
43 425 4
44 429 20
45 449 30
46 479 1
47 480 1
48 481 79
49 560 79
50 639 79
51 718 79
52 797 8
53 805 1
54 806 1
55 807 20
56 827 4
57 831 4
shell> myisampack station.MYI Compressing station.MYI: (1192 records)
- Calculating statistics
normal: 20 empty-space: 16 empty-zero: 12 empty-fill: 11
pre-space: 0 end-space: 12 table-lookups: 5 zero: 7
Original trees: 57 After join: 17
- Compressing file
87.14%
Remember to run myisamchk -rq on compressed tables
shell> ls -l station.* -rw-rw-r-- 1 monty my 127874 Apr 17 19:00 station.MYD
-rw-rw-r-- 1 monty my 55296 Apr 17 19:04 station.MYI
-rw-rw-r-- 1 monty my 5767 Apr 17 19:00 station.frm
shell> myisamchk -dvv station
MyISAM file: station
Isam-version: 2
Creation time: 1996-03-13 10:08:58
Recover time: 1997-04-17 19:04:26
Data records: 1192 Deleted blocks: 0
Datafile parts: 1192 Deleted data: 0
Datafile pointer (bytes): 3 Keyfile pointer (bytes): 1
Max datafile length: 16777215 Max keyfile length: 131071
Recordlength: 834
Record format: Compressed
table description:
Key Start Len Index Type Root Blocksize Rec/key
1 2 4 unique unsigned long 10240 1024 1
2 32 30 multip. text 54272 1024 1
Field Start Length Type Huff tree Bits
1 1 1 constant 1 0
2 2 4 zerofill(1) 2 9
3 6 4 no zeros, zerofill(1) 2 9
4 10 1 3 9
5 11 20 table-lookup 4 0
6 31 1 3 9
7 32 30 no endspace, not_always 5 9
8 62 35 no endspace, not_always, no empty 6 9
9 97 35 no empty 7 9
10 132 35 no endspace, not_always, no empty 6 9
11 167 4 zerofill(1) 2 9
12 171 16 no endspace, not_always, no empty 5 9
13 187 35 no endspace, not_always, no empty 6 9
14 222 4 zerofill(1) 2 9
15 226 16 no endspace, not_always, no empty 5 9
16 242 20 no endspace, not_always 8 9
17 262 20 no endspace, no empty 8 9
18 282 20 no endspace, no empty 5 9
19 302 30 no endspace, no empty 6 9
20 332 4 always zero 2 9
21 336 4 always zero 2 9
22 340 1 3 9
23 341 8 table-lookup 9 0
24 349 8 table-lookup 10 0
25 357 8 always zero 2 9
26 365 2 2 9
27 367 2 no zeros, zerofill(1) 2 9
28 369 4 no zeros, zerofill(1) 2 9
29 373 4 table-lookup 11 0
30 377 1 3 9
31 378 2 no zeros, zerofill(1) 2 9
32 380 8 no zeros 2 9
33 388 4 always zero 2 9
34 392 4 table-lookup 12 0
35 396 4 no zeros, zerofill(1) 13 9
36 400 4 no zeros, zerofill(1) 2 9
37 404 1 2 9
38 405 4 no zeros 2 9
39 409 4 always zero 2 9
40 413 4 no zeros 2 9
41 417 4 always zero 2 9
42 421 4 no zeros 2 9
43 425 4 always zero 2 9
44 429 20 no empty 3 9
45 449 30 no empty 3 9
46 479 1 14 4
47 480 1 14 4
48 481 79 no endspace, no empty 15 9
49 560 79 no empty 2 9
50 639 79 no empty 2 9
51 718 79 no endspace 16 9
52 797 8 no empty 2 9
53 805 1 17 1
54 806 1 3 9
55 807 20 no empty 3 9
56 827 4 no zeros, zerofill(2) 2 9
57 831 4 no zeros, zerofill(1) 2 9myisampackæ¾ç¤ºä¸é¢çåç§ä¿¡æ¯ï¼ · normal ä¸éè¦è¿è¡é¢å¤å缩çåçæ°éã · empty-space åªå å«ç©ºæ ¼çåçæ°éï¼å ä¸ä¸ªæ¯ç¹ã · empty-zero åªå å«äºè¿å¶é¶çåçæ°éï¼å ä¸ä¸ªæ¯ç¹ã · empty-fill ä¸å è¯¥ç±»å ¨åèèå´çæ´æ°åçæ°éï¼è¿äºå被æ¹ä¸ºè¾å°çç±»åãä¾å¦ï¼å¦æææå¼çèå´ä¸ºä»-128å°127ï¼BIGINTå(8个åè)å¯ä»¥ä¿å为TINYINTå(1个åè)ã · pre-space ç¨å¼å¯¼ç©ºæ ¼ä¿åçåè¿å¶åçæ°éãå¨è¿ç§æ åµä¸ï¼æ¯ä¸ªå¼å å«ä¸ä¸ªå¼å¯¼ç©ºæ ¼çæ°é计æ°ã · end-space æå¤§éç»å°¾ç©ºæ ¼çåçæ°éãå¨è¿ç§æ åµä¸ï¼æ¯ä¸ªå¼å å«ä¸ä¸ªç»å°¾ç©ºæ ¼çæ°é计æ°ã · table-lookup 该ååªæå°éçä¸åçå¼ï¼å¨è¿è¡å夫æ¼å缩å被转æ¢ä¸ºä¸ä¸ªENUMã · zero ææå¼ä¸ºé¶çåçæ°éã · Original trees åå¤«æ¼æ çæåæ°éã · After join èæ¥æ 以èçä¸äºå¤´ç©ºé´ä¹åçä¸çåå¤«æ¼æ çæ°éã 表被å缩åï¼myisamchk -dvv为æ¯åè¾åºè¯¦ç»ä¿¡æ¯ï¼ · Type åçç±»åã该å¼å¯ä»¥å å«ä¸é¢çä»»ä½æè¿°ç¬¦ï¼ o constant ææè¡å ·æç¸åçå¼ã o no endspace ä¸ä¿åç»å°¾ç©ºæ ¼ã o no endspaceï¼not_always ä¸ä¿åç»å°¾ç©ºæ ¼å¹¶ä¸å¯¹äºææçå¼ä¸å缩ç»å°¾ç©ºæ ¼ã o no endspaceï¼no empty ä¸ä¿åç»å°¾ç©ºæ ¼ãä¸ä¿å空å¼ã o table-lookup å被转æ¢ä¸ºä¸ä¸ªENUMã o zerofill(n) å¼ä¸æææä¹çnåèæ»ä¸º0ï¼å¹¶ä¸ä¸ä¿åã o no zeros ä¸ä¿åé¶ã o always zeros ç¨ä¸ä¸ªä½ä¿åé¶å¼ã · Huff tree åç¸å ³çåå¤«æ¼æ çæ°éã · Bits åå¤«æ¼æ 使ç¨ç使°ã è¿è¡myisampackåï¼å¿ é¡»è¿è¡myisamchk以鿰å建索å¼ãæ¤æ¶ï¼ä½ ä¹å¯ä»¥æåºç´¢å¼åå¹¶å建MySQLä¼åå¨éè¦çç»è®¡ä¿¡æ¯ä»¥æ´ææå°å·¥ä½ï¼ shell> myisamchk -rq --sort-index --analyze tbl_name.MYI å°å缩ç表å®è£ å°MySQLæ°æ®åºç®å½ä¸åï¼åºæ§è¡mysqladmin flush-tables以强å¶mysqldä½¿ç¨æ°ç表ã è¦æ³è§£å缩ä¸ä¸ªå缩ç表ï¼ä½¿ç¨myisamchkæisamchkç--unpacké项ã mysqlæ¯ä¸ä¸ªç®åçSQLå¤å£³(æGNU readlineåè½)ã宿¯æäº¤äºå¼åé交äºå¼ä½¿ç¨ãå½äº¤äºä½¿ç¨æ¶ï¼æ¥è¯¢ç»æéç¨ASCIIè¡¨æ ¼å¼ãå½éç¨é交äºå¼(ä¾å¦ï¼ç¨ä½è¿æ»¤å¨)æ¨¡å¼æ¶ï¼ç»æä¸ºtabåå²ç¬¦æ ¼å¼ãå¯ä»¥ä½¿ç¨å½ä»¤è¡éé¡¹æ´æ¹è¾åºæ ¼å¼ã 妿ç±äºç»æè¾å¤§èå åä¸è¶³éå°é®é¢ï¼ä½¿ç¨--quické项ãè¿æ ·å¯ä»¥å¼ºå¶mysql仿å¡å¨æ¯æ¬¡ä¸è¡æç´¢ç»æï¼è䏿¯æ£ç´¢æ´ä¸ªç»æé并卿¾ç¤ºä¹åä¸å¾ä¸å°å®ä¿åå°å åä¸ã使ç¨mysql_use_result()è䏿¯mysql_store_result()æ¥æç´¢ç»æéã 使ç¨mysqlå¾ç®åãä»å½ä»¤è§£é符æç¤ºæ¥è°ç¨å®ï¼ shell> mysql db_name æï¼ shell> mysql --user=user_name --password=your_password db_name è¿æ ·è¾å ¥ä¸ä¸ªSQLè¯å¥ï¼ç¨âï¼âã\gæè \Gç»å°¾å¹¶æå车é®ã ä½ å¯ä»¥è¿æ ·è¿è¡ä¸ä¸ªèæ¬ï¼ shell> mysql db_name < script.sql > output.tab mysqlæ¯æä¸é¢çéé¡¹ï¼ Â· ---helpï¼-ï¼ æ¾ç¤ºå¸®å©æ¶æ¯å¹¶éåºã · --batchï¼-B æå°ç»æï¼ä½¿ç¨tabä½ä¸ºåé´éç¬¦ï¼æ¯ä¸ªè¡å ç¨æ°çä¸è¡ã使ç¨è¯¥é项ï¼åmysqlä¸ä½¿ç¨å岿件ã · --character-sets -dir=path å符éçå®è£ ç®å½ãåè§5.10.1èï¼âæ°æ®åæåºç¨å符éâã · --compressï¼-C å缩å¨å®¢æ·ç«¯åæå¡å¨ä¹é´åéçææä¿¡æ¯ï¼å¦æäºè 忝æå缩ï¼ã · ---database=db_nameï¼-D db_name è¦ä½¿ç¨çæ°æ®åºã主è¦å¨é项æä»¶ä¸æç¨ã · ---debug[=debug_options]ï¼-# [debug_options] åè°è¯æ¥å¿ãdebug_optionså符串é常为'd:t:o,file_name'ã é»è®¤ä¸º'd:t:o,/tmp/mysql.trace'ã · ---debug-infoï¼-T å½ç¨åºéåºæ¶è¾åºé¨åè°è¯ä¿¡æ¯ã · --default-character-set=charset 使ç¨charsetasä½ä¸ºé»è®¤å符éãåè§5.10.1èï¼âæ°æ®åæåºç¨å符éâã · --execute=statement, -e statement æ§è¡è¯å¥å¹¶éåºãé»è®¤è¾åºæ ¼å¼ä¸ç¨--batch产ççç¸åã4.3.1èï¼âå¨å½ä»¤è¡ä¸ä½¿ç¨é项â䏿ä¾äºä¸äºä¾åã · --forceï¼-f å³ä½¿åºç°ä¸ä¸ªSQLé误ä»ç»§ç»ã · --host=host_nameï¼-h host_name è¿æ¥ç»å®ä¸»æºä¸çMySQLæå¡å¨ã · --htmlï¼-H 产çHTMLè¾åºã · --ignore-spaceï¼-i 忽è§å½æ°ååé¢çç©ºæ ¼ãå ¶ç»ææè¿°åè§5.3.2èï¼âSQLæå¡å¨æ¨¡å¼âä¸çIGNORE_SPACEç讨论ã · --local-infile[={0|1}] 为LOAD DATA INFILEå¯ç¨æç¦ç¨LOCALåè½ã没æå¼ï¼è¯¥é项å¯ç¨LOCALãè¿å¯ä»¥éç¨--local-infile=0æ--local-infile=1以æ¾å¼ç¦ç¨æå¯ç¨LOCALã妿æå¡å¨ä¸æ¯æï¼å¯ç¨LOCALä¸ä¼çæã · --named-commandsï¼-G å½åçå½ä»¤è¢«å¯ç¨ãå è®¸é¿æ ¼å¼å½ä»¤åçæ ¼å¼\*å½ä»¤ãä¾å¦ï¼quitå\qå被è¯å«ã · --no-auto-rehashï¼-A ä¸èªå¨éæ°è¿è¡åå¸è¿ç®ã该é项使mysqlå¯å¨å¾æ´å¿«ï¼ä½æä½ æ³è¦å®æè¡¨åååï¼ä½ å¿ é¡»ååºrehashå½ä»¤ã · --no-beepï¼-b å½åçé误æ¶ä¸è¦ä¿æã · --no-named-commandsï¼-g å½åçå½ä»¤è¢«ç¦ç¨ãåªä½¿ç¨\*å½¢å¼ï¼æè åªä½¿ç¨è¡å¼å¤´çå½åç¨åå·(âï¼â)ç»æççå½ä»¤ã对äºMySQL 3.23.22ï¼é»è®¤æ åµmysqlå¯å¨æ¶å¯ç¨è¯¥é项ãç¶èï¼å³ä½¿ä½¿ç¨è¯¥é项ï¼é¿æ ¼å¼å½ä»¤ä»ç¶ä»ç¬¬1è¡å·¥ä½ã · --no-pager ä¸ä½¿ç¨å页卿¥æ¾ç¤ºæ¥è¯¢è¾åºãå¨8.3.2èï¼âmysqlå½ä»¤âä¸è¯¦ç»è®¨è®ºäºè¾åºå页ã · --no-tee ä¸å°è¾åºå¤å¶å°æä»¶ä¸ãå¨8.3.2èï¼âmysqlå½ä»¤âä¸è¯¦ç»è®¨è®ºäºTeeæä»¶ã · --one--databaseï¼-O 忽è§é¤äºä¸ºå½ä»¤è¡ä¸å½åçé»è®¤æ°æ®åºçè¯å¥ãå¯ä»¥å¸®å©è·³è¿å¯¹äºè¿å¶æ¥å¿ä¸çå ¶å®æ°æ®åºçæ´æ°ã · --pager[=command] 使ç¨ç»åºçå½ä»¤æ¥å页æ¥è¯¢è¾åºãå¦æè¯¥å½ä»¤è¢«å é¤ï¼é»è®¤å页å¨ä¸ºPAGERç¯å¢åéçå¼ãåæ³pagersæ¯lessãmoreãcat [>filename]ççã该é项åªå¨Unixä¸å·¥ä½ãä¸è½ä»¥æ¹å¤ç模å¼å·¥ä½ãå¨8.3.2èï¼âmysqlå½ä»¤âä¸è¯¦ç»è®¨è®ºäºè¾åºå页ã · --password[=password]ï¼-p[password] å½è¿æ¥æå¡å¨æ¶ä½¿ç¨çå¯ç ãå¦æä½¿ç¨çé项形å¼(-p)ï¼é项å å¯ç ä¹é´ä¸è½æç©ºæ ¼ã妿å¨å½ä»¤è¡ä¸--passwordæ-pé项å颿²¡æ å¯ç å¼ï¼åæç¤ºè¾å ¥ä¸ä¸ªå¯ç ãå¨SysV-based UNIXç³»ç»ä¸åºçç¥å¯ç ï¼å 为å¯ç å¯ä»¥æ¾ç¤ºå¨psçè¾åºä¸ã · --port=port_numï¼-P port_num ç¨äºè¿æ¥çTCP/IP端å£å·ã · --prompt=format_str å°æç¤ºè®¾ç½®ä¸ºæå®çæ ¼å¼ãé»è®¤ä¸ºmysql>ãå¨8.3.2èï¼âmysqlå½ä»¤âä¸æè¿°äºæç¤ºä¸å¯ä»¥å å«çå ·ä½é¡ºåºã · --protocol={TCP | SOCKET | PIPE | MEMORY} 使ç¨çè¿æ¥å议㠷 --quickï¼-q ä¸ç¼åæ¯ä¸ªæ¥è¯¢çç»æï¼æç §æ¥æ¶é¡ºåºæå°æ¯ä¸è¡ã妿è¾åºè¢«æèµ·ï¼æå¡å¨ä¼æ ¢ä¸æ¥ã使ç¨è¯¥é项ï¼mysqlä¸ä½¿ç¨å岿件ã · --rawï¼-r ååçå¼èä¸è½¬ä¹è½¬æ¢ãé常ç»å--batché项使ç¨ã · --reconnect 妿䏿å¡å¨ä¹é´çè¿æ¥æå¼ï¼èªå¨å°è¯éæ°è¿æ¥ãæ¯æ¬¡è¿æ¥æå¼ååå°è¯ä¸æ¬¡éæ°è¿æ¥ãè¦æ³ç¦æ¢éæ°è¿æ¥ï¼ä½¿ç¨--skip-reconnectã · --safe-updatesï¼--i-am-a-dummyï¼-U åªå 许é£äºä½¿ç¨é®å¼æå®è¡çæçUPDATEåDELETEè¯å¥ã妿已ç»å¨é项æä»¶ä¸è®¾ç½®äºè¯¥é项ï¼å¯ä»¥ç¨å½ä»¤è¡ä¸ç--safe-updatesè¦çå®ãå ³äºè¯¥é项ç详ç»ä¿¡æ¯åè§8.3.4èï¼âmysqlæå·§âã · --secure-auth ä¸åæ§(pre-4.1.1)æ ¼å¼çæå¡å¨åéå¯ç ãè¿æ ·å¯ä»¥é²æ¢ä¸ä½¿ç¨æ°å¯ç æ ¼å¼çæå¡å¨çè¿æ¥ã · --show-warnings 妿æ¯ä¸ªè¯å¥åæè¦ååæ¾ç¤ºã该é项éç¨äºäº¤äºå¼åæ¹å¤ç模å¼ã · --sigint-ignore 忽è§SIGINT符å·(ä¸è¬ä¸ºControl-Cçç»æ)ã · --silentï¼-s æ²é»æ¨¡å¼ã产çå°çè¾åºãå¯ä»¥å¤æ¬¡ä½¿ç¨è¯¥éé¡¹ä»¥äº§çæ´å°çè¾åºã · --skip-column-namesï¼-N å¨ç»æä¸ä¸åååã · --skip-line-numbersï¼-L å¨é误信æ¯ä¸ä¸åè¡å·ãå½ä½ æ³è¦æ¯è¾å æ¬éè¯¯æ¶æ¯çç»ææä»¶æ¶æç¨ã · --socket=pathï¼-S path ç¨äºè¿æ¥ç奿¥åæä»¶ã · --tablesï¼-t ç¨è¡¨æ ¼å¼æ¾ç¤ºè¾åºãè¿æ¯äº¤äºå¼åºç¨çé»è®¤è®¾ç½®ï¼ä½å¯ç¨æ¥ä»¥æ¹å¤ç模å¼äº§ç表è¾åºã · --tee=file_name å°è¾åºæ·è´æ·»å å°ç»å®çæä»¶ä¸ã该é项卿¹å¤ç模å¼ä¸å·¥ä½ãå¨8.3.2èï¼âmysqlå½ä»¤âä¸è¯¦ç»è®¨è®ºäºTeeæä»¶ã · --unbufferedï¼-n æ¯æ¬¡æ¥è¯¢åå·æ°ç¼ååºã · --user=user_nameï¼-u user_name å½è¿æ¥æå¡å¨æ¶MySQL使ç¨çç¨æ·åã · --verboseï¼-v åé¿æ¨¡å¼ãäº§çæ´å¤çè¾åºãå¯ä»¥å¤æ¬¡ä½¿ç¨è¯¥éé¡¹ä»¥äº§çæ´å¤çè¾åºã(ä¾å¦ï¼-v -v -vçè³å¯ä»¥å¨æ¹å¤ç模å¼äº§ç表è¾åºæ ¼å¼ï¼ã · --versionï¼-V æ¾ç¤ºçæ¬ä¿¡æ¯å¹¶éåºã · --verticalï¼-E åç´è¾åºæ¥è¯¢è¾åºçè¡ã没æè¯¥é项ï¼å¯ä»¥ç¨\Gç»å°¾æ¥æå®å个è¯å¥çåç´è¾åºã · --waitï¼-w 妿ä¸è½å»ºç«è¿æ¥ï¼çå¾ å¹¶éè¯è䏿¯æ¾å¼ã · --xmlï¼-X 产çXMLè¾åºã ä½ è¿å¯ä»¥ä½¿ç¨--var_name=valueé项设置ä¸é¢çåéï¼ Â· connect_timeout è¿æ¥è¶ æ¶åçç§æ°ã(é»è®¤å¼æ¯0ï¼ã · max_allowed_packet 仿å¡å¨åéææ¥æ¶çæå¤§å é¿åº¦ã(é»è®¤å¼æ¯16MBï¼ã · max_join_size å½ä½¿ç¨--safe-updatesæ¶èæ¥ä¸çè¡çèªå¨éå¶ã(é»è®¤å¼æ¯1,000,000ï¼ã · net_buffer_length TCP/IPå奿¥åéä¿¡ç¼å²åºå¤§å°ã(é»è®¤å¼æ¯16KBï¼ã · select_limit å½ä½¿ç¨--safe-updatesæ¶SELECTè¯å¥çèªå¨éå¶ã(é»è®¤å¼æ¯1,000ï¼ã ä¹å¯ä»¥ä½¿ç¨--set-variable=var_name=value or -O var_name=valueè¯æ³æ¥è®¾ç½®åéãä¸èµæä½¿ç¨è¯¥è¯æ³ã å¨Unixä¸ï¼mysql客æ·ç¨åºåå岿件ä¸åå ¥å·²æ§è¡è¯å¥ç䏿¡è®°å½ãé»è®¤æ åµï¼å岿件å为.mysql_history并卿 ¹ç®å½ä¸é建ãè¦æ³æå®ä¸åçæä»¶ï¼åºè®¾ç½®MYSQL_HISTFILEç¯å¢åéçå¼ã 妿䏿³è¦å岿件ï¼é¦å å é¤.mysql_historyï¼å¦ææï¼ï¼ç¶å使ç¨ä¸é¢çä»»ä½ä¸ç§æ¹æ³ï¼ · å°MYSQL_HISTFILEåé设å°/dev/nullãè¦æ³å¨æ¯æ¬¡ç»å½æ¶è®©è¯¥è®¾ç½®çæï¼å°è¯¥è®¾ç½®æ¾å ¥å¤å£³çä¸ä¸ªå¯å¨æä»¶ä¸ã · å建.mysql_historyï¼ä½ä¸ºä¸ä¸ªç¬¦å·é¾æ¥æå/dev/nullï¼ Â· shell> ln -s /dev/null $HOME/.mysql_history åªéè¦æ§è¡ä¸æ¬¡ã mysqlå°ååºçSQLè¯å¥åéå°å¾ æ§è¡çæå¡å¨ãè¿æä¸ç³»åå½ä»¤mysqlå¯ä»¥èªå·±è§£éãè¦æ¥çè¿äºå½ä»¤ï¼å¨mysql>æç¤ºä¸è¾å ¥helpæ\hï¼ mysql> help List of all MySQL commands: Note that all text commands must be first on line and end with ';' ? (\?) Synonym for `help'. clear (\c) Clear command. connect (\r) Reconnect to the server. Optional arguments are db and host. delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter. edit (\e) Edit command with $EDITOR. ego (\G) Send command to mysql server, display result vertically. exit (\q) Exit mysql. Same as quit. go (\g) Send command to mysql server. help (\h) Display this help. nopager (\n) Disable pager, print to stdout. notee (\t) Don't write into outfile. pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. print (\p) Print current command. prompt (\R) Change your mysql prompt. quit (\q) Quit mysql. rehash (\#) Rebuild completion hash. source (\.) Execute a SQL script file. Takes a file name as an argument. status (\s) Get status information from the server. system (\!) Execute a system shell command. tee (\T) Set outfile [to_outfile]. Append everything into given outfile. use (\u) Use another database. Takes database name as argument. warnings (\W) Show warnings after every statement. nowarning (\w) Don't show warnings after every statement. æ¯ä¸ªå½ä»¤æé¿å½¢å¼åçå½¢å¼ãé¿å½¢å¼å¯¹å¤§å°å䏿æï¼ç形弿æãé¿å½¢å¼åé¢å¯ä»¥å ä¸ä¸ªåå·ç»æç¬¦ï¼ä½çå½¢å¼ä¸å¯ä»¥ã å¨delimiterå½ä»¤ä¸ï¼åºé¿å 使ç¨åæçº¿(â\â)ï¼å ä¸ºè¿æ¯MySQLç转ä¹ç¬¦ã Editãnopagerãpageråsystemå½ä»¤åªå¨Unixä¸å·¥ä½ã statuså½ä»¤æä¾è¿æ¥å使ç¨çæå¡å¨ç¸å ³çé¨åä¿¡æ¯ã妿ç¨--safe-updates模å¼è¿è¡ï¼status乿å°å½±åæ¥è¯¢çMySQLåéçå¼ã è¦æ³è®°å½æ¥è¯¢åå ¶è¾åºï¼åºä½¿ç¨teeå½ä»¤ãå±å¹ä¸æ¾ç¤ºçæææ°æ®è¢«è¿½å å°ç»å®çæä»¶åé¢ãè¿å¯¹äºè°è¯ä¹å¾æç¨ãå¯ä»¥ç¨--teeé项å¨å½ä»¤è¡ä¸å¯ç¨è¯¥ç¹æ§ï¼æè ç¨teeå½ä»¤äº¤äºå¼å¯ç¨ãå¯ä»¥ç¨noteeå½ä»¤äº¤äºå¼ç¦ç¨teeæä»¶ã忬¡æ§è¡teeå¯ä»¥éæ°å¯ç¨æ¥å¿ãåé¢çæä»¶ä½¿ç¨æ¶ä¸å¸¦ä»»ä½åæ°ãè¯·æ³¨ææ§è¡å®æ¯ä¸ªè¯å¥åteeå¯ä»¥å°æ¥è¯¢ç»æå·æ°å°ä¸ä¸ªæä»¶ä¸ï¼å¹¶ä¸å¨mysqlæå°ä¸ä¸ä¸ªæç¤ºåå·æ°ã ç¨--pageré项ï¼å¯ä»¥ç¨äº¤äºå¼æ¨¡å¼ä½¿ç¨Unixç¨åºï¼ä¾å¦lessãmoreæè å ¶å®ç±»ä¼¼çç¨åºï¼æ¥æµè§ææç´¢æ¥è¯¢ç»æãå¦ææªæå®è¯¥é项çå¼ï¼mysqlæ£æ¥PAGERç¯å¢åéçå¼å¹¶å°PAGER设为该å¼ãå¯ä»¥ç¨pagerå½ä»¤äº¤äºå¼å¯ç¨è¾åºå页ï¼å¹¶ç¨nopagerç¦ç¨ã该å½ä»¤éç¨å¯éåéï¼å¦æç»åºï¼å页ç¨åºè®¾ç½®ä¸ºè¯¥å¼ãå¦ææ²¡æç»åºåéï¼å页å¨è¢«è®¾ç½®ä¸ºå¨å½ä»¤è¡ä¸è®¾ç½®çå页å¨çå¼ï¼å¦ææªæå®å页å¨ï¼å设置为stdoutã è¾åºå页åªéåUnixï¼å 为å®ä½¿ç¨popen()彿°ï¼è¯¥å½æ°å¨Windowsä¸ä¸åå¨ãå¨Windowsä¸ï¼å¯ä»¥ä½¿ç¨teeé项æ¥ä¿åæ¥è¯¢è¾åºï¼å°½ç®¡å¨æäºæ åµä¸æµè§è¾åºæ¶ä¸å¦pageræ¹ä¾¿ã å ³äºpagerå½ä»¤çä¸äºæå·§ï¼ · å¯ä»¥ä½¿ç¨å®åå ¥ä¸ä¸ªæä»¶ï¼å°ç»æåªè¾åºå°è¯¥æä»¶ä¸ï¼ · mysql> pager cat > /tmp/log.txt ä¹å¯ä»¥ä¸ºå°ç¨ä½å页å¨çç¨åºä¼ ééé¡¹ï¼ mysql> pager less -n -i -S · 注æåé¢ä¾åä¸ç-Sé项ãå®å¯ä»¥å¸®å©æµè§å¹¿èå´çæ¥è¯¢ç»æãææ¶å¤ªå¹¿çç»æå¾é¾å¨å±å¹ä¸è¯»åºæ¥ãlessç-Sé项å¯ä»¥ä½¿ç»ææ´æäºè¯»ï¼å 为å¯ä»¥ç¨å·¦ãå³ç®å¤´æ°´å¹³æ»å¨å®ãè¿å¯ä»¥å¨lessä¸äº¤äºå¼ä½¿ç¨-Sï¼ä»¥å ³éææå¼æ°´å¹³æµè§æ¨¡å¼ã详ç»ä¿¡æ¯è¯·é 读æåä¸çlessé¡µï¼ Â· shell> man less · å¯ä»¥æå®å¾å¤æçpagerå½ä»¤æ¥å¤çæ¥è¯¢è¾åºï¼ · mysql> PAGER cat | tee /dr1/tmp/res.txt \ · | tee /dr2/tmp/res2.txt | less -n -i -S å¨è¯¥ä¾åä¸ï¼è¯¥å½ä»¤å°æ¥è¯¢ç»æåéå°ä½äº/dr1å/dr2ä¸å®è£ ç两个ä¸åçæä»¶ç³»ç»ä¸ç两个ä¸åç®å½ä¸ç两个æä»¶ä¸ï¼ä½ä»ç¶å¯ä»¥éè¿lesså°ç»ææ¾ç¤ºå¨å±å¹ä¸ã è¿å¯ä»¥ç»å使ç¨teeåpager彿°ãå¯ç¨ä¸ä¸ªteeæä»¶å¹¶å°pager设置为lessï¼è½å¤ä½¿ç¨less ç¨åºæµè§ç»æï¼å¹¶ä¸ä»ç¶å¯ä»¥åæ¶å°å 容添å å°ä¸ä¸ªæä»¶ä¸ãç»åpagerå½ä»¤ä½¿ç¨çUnix teeå mysqlåµå ¥å¼teeå½ä»¤ç差嫿¯å³ä½¿æ²¡æå¯ç¨çUnix teeï¼åµå ¥å¼teeä»ç¶å¯ä»¥å·¥ä½ãåµå ¥å¼teeè¿å¯ä»¥è®°å½å¨å±å¹ä¸è¾åºçå 容ï¼èç»åpagerå½ä»¤ä½¿ç¨çUnix teeä¸è½è®°å½é£ä¹å¤çå 容ãå¹¶ä¸ï¼å¯ä»¥ä»MySQLä¸äº¤äºå¼æå¼æå ³éteeæä»¶æ¥å¿ãå½ä½ æ³è¦å°é¨åæ¥è¯¢è®°å½å°ä¸ä¸ªæä»¶ä¸æ¶å¾æç¨ï¼ä½å ¶å®ä¸éåã é»è®¤mysql>æç¤ºç¬¦å¯ä»¥éæ°é ç½®ãå®ä¹æç¤ºç¬¦çå符串å¯ä»¥å å«ä¸é¢çç¹æ®åºåï¼
â\âåé¢è·éçå ¶å®åæ¯ååä¸ºè¯¥åæ¯ã 妿ä¸ç¨ä»»ä½åéæå®æç¤ºå½ä»¤ï¼mysqlå°æç¤ºéæ°è®¾ç½®ä½é»è®¤mysql>ã å¯ä»¥ç¨å ç§æ¹å¼è®¾ç½®æç¤ºï¼ · 使ç¨ç¯å¢åé å¯ä»¥ç¨MYSQL_PS1ç¯å¢åéæ¥è®¾ç½®æç¤ºå符串ãä¾å¦ï¼ shell> export MYSQL_PS1="(\u@\h) [\d]> " · 使ç¨é项æä»¶ å¯ä»¥å¨MySQLé项æä»¶ä¸ç[mysql]ç»è®¾ç½®æç¤ºï¼ä¾å¦æ ¹ç®å½ä¸ç/etc/my.cnfæ.my.cnfæä»¶ãä¾å¦ï¼ [mysql]
prompt=(\\u@\\h) [\\d]>\\_å¨è¯¥ä¾åä¸ï¼è¯·æ³¨æåæçº¿æ¯å线ãå¦æä½¿ç¨é项æä»¶ä¸çprompté项æ¥è®¾ç½®æç¤ºï¼å½ä½¿ç¨ç¹æ®æç¤ºé项æ¶ï¼å»ºè®®ä½¿ç¨ååæçº¿ãå¨å 许çæç¤ºé项åé项æä»¶ä¸å¯è¯å«çç¹æ®è½¬ä¹åºå䏿é¨åéå ã(è¿äºåºååäº4.3.2èï¼â使ç¨é项æä»¶âï¼ãå¦æä½¿ç¨ååæçº¿ï¼ä¼éå°é®é¢ãä¾å¦ï¼\s被解éä¸ºç©ºæ ¼è䏿¯å½åçç§å¼ãä¸é¢çä¾åæ¾ç¤ºäºå¦ä½å¨é项æä»¶ä¸å®ä¹æç¤ºä»¥å æ¬å½åçæ¶é´ï¼æ ¼å¼ä¸ºHH:MM:SS>ï¼ [mysql]
prompt="\\r:\\m:\\s> "· 使ç¨å½ä»¤è¡é项 å¯ä»¥å¨mysqlçå½ä»¤è¡ä¸è®¾ç½®--prompté项ãä¾å¦ï¼ shell> mysql --prompt="(\u@\h) [\d]> " (user@host) [database]>· 交äºå¼ ä½ å¯ä»¥ä½¿ç¨prompt(æ\R)å½ä»¤äº¤äºå°æ´æ¹æç¤ºãä¾å¦ï¼ mysql> prompt (\u@\h) [\d]>\_ PROMPT set to '(\u@\h) [\d]>\_'
(user@host) [database]> (user@host) [database]> prompt Returning to default PROMPT of mysql>
mysql>mysql客æ·ç¨åºä¸è¬äº¤äºä½¿ç¨ï¼ shell> mysql db_name è¿å¯ä»¥å°SQLè¯å¥æ¾å°ä¸ä¸ªæä»¶ä¸ç¶ååè¯mysqlä»è¯¥æä»¶è¯»åè¾å ¥ãè¦æ³å®ç°ï¼å建ä¸ä¸ªææ¬æä»¶text_fileï¼å¹¶å å«ä½ æ³è¦æ§è¡çè¯å¥ãç¶åæå¦ä¸æç¤ºè°ç¨mysqlï¼ shell> mysql db_name < text_file è¿å¯ä»¥ç¨ä¸ä¸ªUSE db_nameè¯å¥å¯å¨ææ¬æä»¶ãå¨è¿ç§æ åµä¸ï¼ä¸éè¦å¨å½ä»¤è¡ä¸æå®æ°æ®åºåï¼ shell> mysql < text_file 妿æ£è¿è¡mysqlï¼å¯ä»¥ä½¿ç¨sourceæ\.å½ä»¤æ§è¡SQLèæ¬æä»¶ï¼ mysql> source filename mysql> \. filename ææ¶æ³è¦ä½¿ç¨èæ¬æ¥åç¨æ·æ¾ç¤ºè¿åº¦ä¿¡æ¯ï¼ä¸ºæ¤å¯ä»¥æå ¥ä¸è¿°è¡ï¼ SELECT '<info_to_display>' AS ' ';
å°è¾åº<info_to_display>ã å ³äºæ¹å¤ç模å¼ç详ç»ä¿¡æ¯ï¼åè§3.5èï¼â卿¹å¤ç模å¼ä¸ä½¿ç¨mysqlâã ä¸äºæ¥è¯¢ç»æå¦æåç´æ¾ç¤ºèä¸ç¨éå¸¸çæ°´å¹³è¡¨æ ¼å¼æ¾ç¤ºï¼åæ´å®¹æè¯»åãç¨\Gèä¸ç¨åå·ç»ææ¥è¯¢å¯ä»¥åç´æ¾ç¤ºæ¥è¯¢ãä¾å¦ï¼å æ¬æ°è¡çæ´é¿çææ¬å¼åç´è¾åºæ¶é常æ´å®¹æè¯»åï¼ mysql>
SELECT * FROM mails WHERE LENGTH(txt) < 300 LIMIT 300,1\G
*************************** 1. row ***************************
msg_nro: 3068
date: 2000-03-01 23:29:50
time_zone: +0200
mail_from: Monty
reply: monty@no.spam.com
mail_to: "Thimble Smith" å¯¹äºæ°æï¼æä¸ä¸ªæç¨çå¯å¨é项--safe-updates(æ--i-am-a-dummyï¼å ·æç¸åçææ)ãå½ä½ å·²ç»ååºä¸ä¸ªDELETE FROM tbl_nameè¯å¥ä½å¿è®°äºWHEREå奿¶å¾æç¨ãé常æ åµï¼è¿æ ·çè¯å¥ä»è¡¨ä¸å 餿æè¡ãç¨--safe-updatesï¼å¯ä»¥éè¿æå®å¯ä»¥è¯å«å®ä»¬çé®å¼åªå 餿äºè¡ãè¿æ ·å¯ä»¥å¸®å©é²æ¢äºæ ã è¥ä½¿ç¨--safe-updatesé项ï¼mysqlè¿æ¥MySQLæå¡å¨æ¶ååºä¸é¢çè¯å¥ï¼ SET SQL_SAFE_UPDATES=1,SQL_SELECT_LIMIT=1000, SQL_MAX_JOIN_SIZE=1000000;åè§13.5.3èï¼âSETè¯æ³âã SETè¯å¥æä¸é¢çææï¼ · ä¸å è®¸ä½ æ§è¡UPDATEæDELETEè¯å¥ï¼é¤éå¨WHEREåå¥ä¸æå®ä¸ä¸ªé®å¼çº¦æææä¾ä¸ä¸ªLIMITåå¥(æäºè ç使ç¨)ãä¾å¦ï¼ · UPDATE tbl_name SET not_key_column=val WHERE key_column=val; · · UPDATE tbl_name SET not_key_column=val LIMIT 1; · ææå¤§çSELECTç»æèªå¨éå¶å°1,000è¡ï¼é¤éè¯å¥å æ¬ä¸ä¸ªLIMITåå¥ã · æ¾å¼å¯è½éè¦æ£æ¥1,000,000å¤è¡ç»åçå¤è¡¨SELECTè¯å¥ã è¦å°éå¶æå®ä¸º1,000å1,000,000ä¹å¤çå¼ï¼å¯ä»¥ä½¿ç¨--select_limitå--max_join_sizeé项è¦çé»è®¤å¼ï¼ shell> mysql --safe-updates --select_limit=500 --max_join_size=10000 妿mysql客æ·ç¨åºåéæ¥è¯¢æ¶æå¼ä¸æå¡å¨çè¿æ¥ï¼å®ç«å³å¹¶èªå¨å°è¯éæ°è¿æ¥æå¡å¨å¹¶å次åéæ¥è¯¢ãç¶èï¼å³ä½¿mysqléæ°è¿æ¥æåï¼ä½ ç第1ä¸ªè¿æ¥ä¹å·²ç»ç»æï¼å¹¶ä¸ä»¥åçä¼è¯å¯¹è±¡å设å®å¼è¢«ä¸¢å¤±ï¼å æ¬ä¸´æ¶è¡¨ãèªå¨æäº¤æ¨¡å¼ï¼ä»¥åç¨æ·åä¼è¯åéã该è¡ä¸ºå¾å±é©ï¼å¦ä¸é¢çä¾åæç¤ºï¼æå¡å¨å°å¨ä½ ä¸ç¥éçæ åµä¸å ³éå¹¶éå¯ï¼ mysql> SET @a=1; Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO t VALUES(@a); ERROR 2006: MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 1
Current database: test
Query OK, 1 row affected (1.30 sec)
mysql> SELECT * FROM t; +------+
| a |
+------+
| NULL |
+------+
1 row in set (0.05 sec)@aç¨æ·åéå·²ç»éè¿æ¥ä¸¢å¤±ï¼å¹¶ä¸éæ°è¿æ¥åå®ä¹æ²¡æå®ä¹ã妿æå¿ è¦å¨è¿æ¥æå¼æ¶ç»æ¢mysqlå¹¶æç¤ºé误ï¼ä½ å¯ä»¥ç¨--skip-reconnecté项å¯å¨mysql客æ·ç¨åºã mysqlaccessæ¯Yves Carlier为MySQLååæä¾çä¸ä¸ªè¯æå·¥å ·ã宿£æ¥è®¿é®æéç主æºåãç¨æ·ååæ°æ®åºç»åã请注æ mysqlaccessæ£æ¥åªä½¿ç¨userãdbåhost表ç访é®ãå®ä¸æ£æ¥å¨tables_privãcolumns_privæprocs_privè¡¨ä¸æå®ç表ãåæè ç¨åºçæéã è°ç¨mysqlaccessçæ¹æ³ï¼ shell> mysqlaccess [host_name [user_name [db_name]]] [options] mysqlaccessçè§£ä¸é¢çéé¡¹ï¼ Â· ---helpï¼-ï¼ æ¾ç¤ºå¸®å©æ¶æ¯å¹¶éåºã · --briefï¼-b çæåè¡è¡¨æ ¼å¼çæ¥åã · --commit ä»ä¸´æ¶è¡¨å°æ°è®¿é®æéå¤å¶å°åææè¡¨ãå¿ é¡»ä¸ºæ°çæéå·æ°ææè¡¨ä»¥ä½¿å ¶çæã(ä¾å¦ï¼æ§è¡mysqladmin RELOADå½ä»¤ï¼ã · --copy ä»åææè¡¨éè½½ä¸´æ¶ææè¡¨ã · --db=db_nameï¼-d db_name æå®æ°æ®åºåã · ---debug=N æå®è°è¯çº§å«ãNå¯ä»¥ä¸ºä»0å°3çä¸ä¸ªæ´æ°ã · --host=host_nameï¼-h host_name å¨è®¿é®æéä¸ä½¿ç¨ç主æºåã · --howto æ¾ç¤ºä¸äºä¾åæ¾ç¤ºå¦ä½ä½¿ç¨mysqlaccessã · --old_server å宿å¡å¨æ¯ä¸ä¸ªæ§çæ¬çMySQLæå¡å¨(MySQL 3.21ä¹å)ï¼è¿ä¸ç¥éå¦ä½å¤çå ¨WHEREåå¥ã · --password[=password]ï¼-p[password] å½è¿æ¥æå¡å¨æ¶ä½¿ç¨çå¯ç ãå¦æä½ å¨å½ä»¤è¡ä¸å¨--passwordæ-pé项åé¢çç¥ å¯ç å¼ï¼å°æç¤ºä½ è¾å ¥å¯ç ã · --plan æ¾ç¤ºå°æ¥åå¸çå»ºè®®åææ³ã · --preview æ´æ¹ä¸´æ¶ææè¡¨åæ¾ç¤ºæéçä¸åã · --relnotes æ¾ç¤ºå叿³¨è§£ã · --rhost=host_nameï¼-H host_name è¿æ¥ç»å®ä¸»æºçMySQLæå¡å¨ã · --rollback åæ¶å¯¹ä¸´æ¶ææè¡¨çææ°çæ´æ¹ã · --spassword[=password]ï¼-P[password] 以superç¨æ·è¿æ¥æå¡å¨æ¶ä½¿ç¨çå¯ç ã妿å¨å½ä»¤è¡ä¸å¨--passwordæ-pé项åé¢çç¥äº å¯ç å¼ï¼å°æç¤ºä½ è¾å ¥å¯ç ã · --superuser=user_nameï¼-U user_name æå®ä»¥superç¨æ·è¿æ¥æ¶çç¨æ·åã · --tablesï¼-t çæè¡¨æ ¼å¼çæ¥åã · --user=user_nameï¼-u user_name å¨è®¿é®æéä¸ä½¿ç¨ç主æºåã · --versionï¼-v æ¾ç¤ºçæ¬ä¿¡æ¯å¹¶éåºã å¦æä½ çMySQLååå®è£ å¨æä¸ªéæ åä½ç½®ï¼å¿ é¡»è¿å ¥mysqlaccessæææ¾å°mysql客æ·çç®å½ãç¼è¾å¤§çº¦å¨18è¡å¤çmysqlaccessèæ¬ãæç´¢ç±»ä¼¼ä¸é¢çä¸è¡ï¼ $MYSQL = '/usr/local/bin/mysql'; # path to mysql executableå°è·¯å¾æ´æ¹ä¸ºmysqlå®é å¨ç³»ç»ä¸ä¿åçä½ç½®ã妿ä¸è¿æ ·åï¼å½è¿è¡mysqlaccessæ¶ä¼åçBroken pipeé误ã 8.5. mysqladminï¼ç¨äºç®¡çMySQLæå¡å¨ç客æ·ç«¯mysqladminæ¯ä¸ä¸ªæ§è¡ç®¡çæä½ç客æ·ç¨åºãå¯ä»¥ç¨å®æ¥æ£æ¥æå¡å¨çé ç½®åå½åçç¶æï¼å建并å 餿°æ®åºççã è¿æ ·è°ç¨mysqladminï¼ shell> mysqladmin [options] command [command-options] [command [command-options]] ... mysqladminæ¯æä¸é¢çå½ä»¤ï¼ · create db_name å建ä¸ä¸ªå为db_nameçæ°æ°æ®åºã · debug åè¯æå¡å¨åé误æ¥å¿åå ¥è°è¯ä¿¡æ¯ã · drop db_name å é¤å为db_namçæ°æ®åºåææè¡¨ã · extended-status æ¾ç¤ºæå¡å¨ç¶æåéåå ¶å¼ã · flush-hosts å·æ°ä¸»æºç¼åä¸çææä¿¡æ¯ã · flush-logs å·æ°æææ¥å¿ã · flush-privileges éè½½ææè¡¨(类似reload)ã · flush-status æ¸ é¤ç¶æåéã · flush-tables å·æ°ææè¡¨ã · flush-threads å·æ°çº¿ç¨ç¼åã · kill id,id,... æææå¡å¨çº¿ç¨ã · old-password new-password 类似passwordä½ä½¿ç¨æ§ç(pre-4.1)å¯ç å叿 ¼å¼ä¿å å¯ç ã(åè§5.7.9èï¼âMySQL 4.1ä¸çå¯ç åå¸å¤çâï¼ã · password new-password 设置ä¸ä¸ªæ°å¯ç ãå°ç¨mysqladminè¿æ¥æå¡å¨ä½¿ç¨ç è´¦æ·çå¯ç æ´æ¹ä¸ºnew-passwordã 妿new-passwordå å«ç©ºæ ¼æå ¶å®å½ä»¤è§£é符çç¹æ®å符ï¼éè¦ç¨å¼å·å°å®å¼èµ·æ¥ãå¨Windowsä¸ï¼ä¸å®è¦ä½¿ç¨åå¼å·èä¸è¦ç¨åå¼å·ï¼åå¼å·ä¸ä¼ä» å¯ç ä¸å¥ç¦»åºæ¥ï¼èæ¯è§£é为å¯ç çä¸é¨åãä¾å¦ï¼ shell> mysqladmin password "my new password" · ping æ£æ¥æå¡å¨æ¯å¦ä»æ´»å¨ã妿æå¡å¨å¨è¿è¡mysqladminè¿åç¶æ0ï¼å¦æä¸è¿è¡è¿å1ãå³ä½¿åºç°é误ä¾å¦Access deniedä¹ä¸º0ï¼å 为è¿è¯´ææå¡å¨å¨è¿è¡ä½æç»äºè¿æ¥ï¼ä¸æå¡å¨ä¸å¨è¿è¡ä¸åã · processlist æ¾ç¤ºæ´»å¨æå¡å¨çº¿ç¨çå表ã类似SHOW PROCESSLISTè¯å¥çè¾åºã妿ç»åºäº--verboseé项ï¼è¾åºç±»ä¼¼SHOW FULL PROCESSLISTã(åè§13.5.4.16èï¼âSHOW PROCESSLISTè¯æ³âï¼ã · reload éè½½ææè¡¨ã · refresh å·æ°ææè¡¨å¹¶å ³éåæå¼æ¥å¿æä»¶ã · shutdown 忢æå¡å¨ã · start-slave å¼å§ä»æå¡å¨ä¸çå¤å¶ã · status æ¾ç¤ºçæå¡å¨ç¶ææ¶æ¯ã · stop-slave 忢仿å¡å¨ä¸çå¤å¶ã · variables æ¾ç¤ºæå¡å¨ç³»ç»åéåå ¶å¼ã · version æ¾ç¤ºæå¡å¨ççæ¬ä¿¡æ¯ã ææå½ä»¤å¯ä»¥ç®å为任ä½å¯ä¸çåç¼ãä¾å¦ï¼ shell> mysqladmin proc stat +----+-------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------+-----------+----+---------+------+-------+------------------+
| 51 | monty | localhost | | Query | 0 | | show processlist |
+----+-------+-----------+----+---------+------+-------+------------------+
Uptime: 1473624 Threads: 1 Questions: 39487
Slow queries: 0 Opens: 541 Flush tables: 1
Open tables: 19 Queries per second avg: 0.0268
mysqladmin statuså½ä»¤çç»ææ¾ç¤ºä¸é¢çå¼ï¼ · Uptime MySQLæå¡å¨å·²ç»è¿è¡çç§æ°ã · Threads æ´»å¨çº¿ç¨(客æ·)çæ°ç®ã · Questions æå¡å¨å¯å¨ä»¥æ¥å®¢æ·çé®é¢(æ¥è¯¢)æ°ç®ã · Slow queries æ§è¡æ¶é´è¶ è¿long_query_timeç§çæ¥è¯¢çæ°éãåè§5.11.4èï¼âæ ¢éæ¥è¯¢æ¥å¿âã · Opens æå¡å¨å·²ç»æå¼çæ°æ®åºè¡¨çæ°éã · Flush tables æå¡å¨å·²ç»æ§è¡çflush ...ãrefreshåreloadå½ä»¤çæ°éã · Open tables ç®åæå¼çè¡¨çæ°éã · Memory in use mysqld代ç ç´æ¥åé çå åæ°éãåªæç¨--with--debug=fullç¼è¯äºMySQLè¯¥å¼ææ¾ç¤ºã · Maximum memory used mysqld代ç ç´æ¥åé çæå¤§å åæ°éãåªæç¨--with--debug=fullç¼è¯äºMySQLè¯¥å¼ææ¾ç¤ºã 妿å½ä½¿ç¨Unix奿¥åæä»¶è¿æ¥æ¬å°æå¡å¨æ¶æ§è¡mysqladmin shutdownï¼mysqladminå°çå¾ ç´å°æå¡å¨çè¿ç¨IDæä»¶è¢«å é¤ï¼ä»¥ç¡®ä¿æå¡å¨æ£ç¡®åæ¢ã mysqladminæ¯æä¸é¢çéé¡¹ï¼ Â· ---helpï¼-ï¼ æ¾ç¤ºå¸®å©æ¶æ¯å¹¶éåºã · --character-sets-dir=path å符éçå®è£ ç®å½ãåè§5.10.1èï¼âæ°æ®åæåºç¨å符éâã · --compressï¼-C å缩客æ·åæå¡å¨ä¹é´åéçææä¿¡æ¯ï¼å¦æäºè 忝æå缩ï¼ã · --count=numï¼-c num è¿ä»£æ°ç®ã该éé¡¹åªæç»å--sleep (-i)æè½å·¥ä½ã · ---debug[=debug_options]ï¼-# [debug_options] åè°è¯æ¥å¿ãdebug_optionså符串é常为'd:t:o,file_name'ã é»è®¤ä¸º'd:t:o,/tmp/mysqladmin.trace'ã · --default-character-set=charset 使ç¨charsetasä½ä¸ºé»è®¤å符éãåè§5.10.1èï¼âæ°æ®åæåºç¨å符éâã · --forceï¼-f ä¸å为drop databaseå½ä»¤è¿è¡ç¡®è®¤ã对äºå¤ä¸ªå½ä»¤ï¼å³ä½¿åºç°é误ä¹ç»§ç»ã · --host=host_nameï¼-h host_name è¿æ¥ç»å®ä¸»æºä¸çMySQLæå¡å¨ã · --password[=password]ï¼-p[password] è¿æ¥æå¡å¨ä½¿ç¨çå¯ç ãå¦æä½¿ç¨çé项形å¼(-p)ï¼è¯¥é项å å¯ç ä¹é´ä¸è½æç©ºæ ¼ãå¦æä½ å¨å½ä»¤è¡ä¸å¨--passwordæ-pé项åé¢çç¥ å¯ç å¼ï¼å°æç¤ºä½ è¾å ¥å¯ç ã · --port=port_numï¼-P port_num ç¨äºè¿æ¥çTCP/IP端å£å·ã · --protocol={TCP | SOCKET | PIPE | MEMORY} 使ç¨çè¿æ¥å议㠷 --relativeï¼-r å½å¸¦-Iä½¿ç¨æ¶æ¾ç¤ºå½åååé¢å¼çå·®å«ãç®åï¼è¯¥é项åªç¨äºextended-statuså½ä»¤ã · --silentï¼-s 妿ä¸è½å»ºç«ä¸æå¡å¨çè¿æ¥å以æ²é»æ¹å¼éåºã · --sleep=delayï¼-i delay æ¯ç¡ç delayç§åæ§è¡ä¸æ¬¡å½ä»¤ã · --socket=pathï¼-S path ç¨äºè¿æ¥ç奿¥åæä»¶ã · --user=user_nameï¼-u user_name å½è¿æ¥æå¡å¨æ¶ä½¿ç¨çMySQLç¨æ·åã · --verboseï¼-v åé¿æ¨¡å¼ãæå°åºç¨åºæä½ç详ç»ä¿¡æ¯ã · --versionï¼-V æ¾ç¤ºçæ¬ä¿¡æ¯å¹¶éåºã · --verticalï¼-E åç´æå°è¾åºã类似äº--relativeï¼ä½åç´æå°è¾åºã · --wait[=count]ï¼-w[count] å¦æè¿æ¥ä¸è½å»ºç«ï¼çå¾ å¹¶éè¯è䏿¯æ¾å¼ã妿ç»åºä¸ä¸ªé项å¼ï¼åæç¤ºéè¯ç次æ°ãé»è®¤æ¯ä¸æ¬¡ã ä¹å¯ä»¥ä½¿ç¨--var_name=valueé项设置ä¸é¢çåéï¼ Â· connect_timeout è¿æ¥è¶ æ¶ä¹åçæå¤§ç§æ°ãé»è®¤å¼ä¸º43200(12å°æ¶)ã · shutdown_timeout çåå ³éçæå¤§ç§æ°ãé»è®¤å¼ä¸º3600(1å°æ¶)ã ä¹å¯ä»¥ä½¿ç¨--set-variable=var_name=valueæ-O var_name=valueè¯æ³æ¥è®¾ç½®åéãç¶èï¼ç°å¨ä¸èµæè¯¥è¯æ³ï¼å¹¶ä¸ä¸å使ç¨ã æå¡å¨çæçäºè¿å¶æ¥å¿æä»¶åæäºè¿å¶æ ¼å¼ãè¦æ³æ£æ¥è¿äºææ¬æ ¼å¼çæä»¶ï¼åºä½¿ç¨mysqlbinlogå®ç¨å·¥å ·ã åºè¿æ ·è°ç¨mysqlbinlogï¼ shell> mysqlbinlog [options] log-files... ä¾å¦ï¼è¦æ³æ¾ç¤ºäºè¿å¶æ¥å¿binlog.000003çå 容ï¼ä½¿ç¨ä¸é¢çå½ä»¤ï¼ shell> mysqlbinlog binlog.0000003 è¾åºå æ¬å¨binlog.000003ä¸å å«çææè¯å¥ï¼ä»¥åå ¶å®ä¿¡æ¯ä¾å¦æ¯ä¸ªè¯å¥è±è´¹çæ¶é´ã客æ·ååºç线ç¨IDãååºçº¿ç¨æ¶çæ¶é´æ³ççã é常æ åµï¼å¯ä»¥ä½¿ç¨mysqlbinlogç´æ¥è¯»åäºè¿å¶æ¥å¿æä»¶å¹¶å°å®ä»¬ç¨äºæ¬å°MySQLæå¡å¨ãä¹å¯ä»¥ä½¿ç¨--read-from-remote-serveré项ä»è¿ç¨æå¡å¨è¯»åäºè¿å¶æ¥å¿ã å½è¯»åè¿ç¨äºè¿å¶æ¥å¿æ¶ï¼å¯ä»¥éè¿è¿æ¥åæ°éé¡¹æ¥æç¤ºå¦ä½è¿æ¥æå¡å¨ï¼ä½å®ä»¬ç»å¸¸è¢«å¿½ç¥æï¼é¤éä½ è¿æå®äº--read-from-remote-serveré项ãè¿äºé项æ¯--hostã--passwordã--portã--protocolã--socketå--userã è¿å¯ä»¥ä½¿ç¨mysqlbinlogæ¥è¯»åå¨å¤å¶è¿ç¨ä¸ä»æå¡å¨æåçä¸ç»§æ¥å¿æä»¶ãä¸ç»§æ¥å¿æ ¼å¼ä¸äºè¿å¶æ¥å¿æä»¶ç¸åã å¨5.11.3èï¼âäºè¿å¶æ¥å¿âä¸è¯¦ç»è®¨è®ºäºäºè¿å¶æ¥å¿ã mysqlbinlogæ¯æä¸é¢çéé¡¹ï¼ Â· ---helpï¼-ï¼ æ¾ç¤ºå¸®å©æ¶æ¯å¹¶éåºã · ---database=db_nameï¼-d db_name åªååºè¯¥æ°æ®åºçæ¡ç®(åªç¨æ¬å°æ¥å¿)ã · --force-readï¼-f 使ç¨è¯¥é项ï¼å¦æmysqlbinlog读å®ä¸è½è¯å«çäºè¿å¶æ¥å¿äºä»¶ï¼å®ä¼æå°è¦åï¼å¿½ç¥è¯¥äºä»¶å¹¶ç»§ç»ã没æè¯¥é项ï¼å¦æmysqlbinlogè¯»å°æ¤ç±»äºä»¶å忢ã · --hexdumpï¼-H 卿³¨é䏿¾ç¤ºæ¥å¿çåå è¿å¶è½¬å¨ã该è¾åºå¯ä»¥å¸®å©å¤å¶è¿ç¨ä¸çè°è¯ãå¨MySQL 5.1.2䏿·»å äºè¯¥é项ã · --host=host_nameï¼-h host_name è·åç»å®ä¸»æºä¸çMySQLæå¡å¨çäºè¿å¶æ¥å¿ã · --local-load=pathï¼-l pat 为æå®ç®å½ä¸çLOAD DATA INFILEé¢å¤çæ¬å°ä¸´æ¶æä»¶ã · --offset=Nï¼-o N è·³è¿åN个æ¡ç®ã · --password[=password]ï¼-p[password] å½è¿æ¥æå¡å¨æ¶ä½¿ç¨çå¯ç ãå¦æä½¿ç¨çé项形å¼(-p)ï¼é项å å¯ç ä¹é´ä¸è½æç©ºæ ¼ã妿å¨å½ä»¤è¡ä¸--passwordæ-pé项å颿²¡æ å¯ç å¼ï¼åæç¤ºè¾å ¥ä¸ä¸ªå¯ç ã · --port=port_numï¼-P port_num ç¨äºè¿æ¥è¿ç¨æå¡å¨çTCP/IP端å£å·ã · --position=Nï¼-j N ä¸èµæä½¿ç¨ï¼åºä½¿ç¨--start-positionã · --protocol={TCP | SOCKET | PIPE | -position 使ç¨çè¿æ¥å议㠷 --read-from-remote-serverï¼-R ä»MySQLæå¡å¨è¯»äºè¿å¶æ¥å¿ã妿æªç»åºè¯¥é项ï¼ä»»ä½è¿æ¥åæ°é项å°è¢«å¿½ç¥ãè¿äºé项æ¯--hostã--passwordã--portã--protocolã--socketå--userã · --result-file=name, -r name å°è¾åºæåç»å®çæä»¶ã · --short-formï¼-s åªæ¾ç¤ºæ¥å¿ä¸å å«çè¯å¥ï¼ä¸æ¾ç¤ºå ¶å®ä¿¡æ¯ã · --socket=pathï¼-S path ç¨äºè¿æ¥ç奿¥åæä»¶ã · --start-datetime=datetime ä»äºè¿å¶æ¥å¿ä¸ç¬¬1ä¸ªæ¥ææ¶é´çäºææäºdatetimeåéçäºä»¶å¼å§è¯»åãdatetimeå¼ç¸å¯¹äºè¿è¡mysqlbinlogçæºå¨ä¸çæ¬å°æ¶åºãè¯¥å¼æ ¼å¼åºç¬¦åDATETIMEæTIMESTAMPæ°æ®ç±»åãä¾å¦ï¼ shell> mysqlbinlog --start-datetime="2004-12-25 11:25:56" binlog.000003 该é项å¯ä»¥å¸®å©ç¹å¯¹ç¹æ¢å¤ã · --stop-datetime=datetime ä»äºè¿å¶æ¥å¿ä¸ç¬¬1ä¸ªæ¥ææ¶é´çäºææäºdatetimeåéçäºä»¶èµ·åæ¢è¯»ãå ³äºdatetimeå¼çæè¿°åè§--start-datetimeé项ã该é项å¯ä»¥å¸®å©åæ¶æ¢å¤ã · --start-position=N ä»äºè¿å¶æ¥å¿ä¸ç¬¬1个ä½ç½®çäºNåéæ¶çäºä»¶å¼å§è¯»ã · --stop-position=N ä»äºè¿å¶æ¥å¿ä¸ç¬¬1个ä½ç½®çäºå大äºNåéæ¶çäºä»¶èµ·åæ¢è¯»ã · --to-last-logsï¼-t å¨MySQLæå¡å¨ä¸è¯·æ±çäºè¿å¶æ¥å¿çç»å°¾å¤ä¸åæ¢ï¼èæ¯ç»§ç»æå°ç´å°æåä¸ä¸ªäºè¿å¶æ¥å¿çç»å°¾ã妿å°è¾åºåéç»åä¸å°MySQLæå¡å¨ï¼ä¼å¯¼è´æ é循ç¯ã该éé¡¹è¦æ±--read-from-remote-serverã · --disable-logs-binï¼-D ç¦ç¨äºè¿å¶æ¥å¿ãå¦æä½¿ç¨--to-last-logsé项å°è¾åºåéç»åä¸å°MySQLæå¡å¨ï¼å¯ä»¥é¿å æ é循ç¯ã该é项å¨å´©æºæ¢å¤æ¶ä¹å¾æç¨ï¼å¯ä»¥é¿å å¤å¶å·²ç»è®°å½çè¯å¥ã注éï¼è¯¥éé¡¹è¦æ±æSUPERæéã · --user=user_nameï¼-u user_name è¿æ¥è¿ç¨æå¡å¨æ¶ä½¿ç¨çMySQLç¨æ·åã · --versionï¼-V æ¾ç¤ºçæ¬ä¿¡æ¯å¹¶éåºã è¿å¯ä»¥ä½¿ç¨--var_name=valueé项设置ä¸é¢çåéï¼ Â· open_files_limit æå®è¦ä¿ççæå¼çæä»¶æè¿°ç¬¦çæ°éã å¯ä»¥å°mysqlbinlogçè¾åºä¼ å°mysql客æ·ç«¯ä»¥æ§è¡å å«å¨äºè¿å¶æ¥å¿ä¸çè¯å¥ãå¦æä½ æä¸ä¸ªæ§çå¤ä»½ï¼è¯¥é项å¨å´©æºæ¢å¤æ¶ä¹å¾æç¨(åè§5.9.1èï¼âæ°æ®åºå¤ä»½â)ï¼ shell> mysqlbinlog hostname-bin.000001 | mysql æï¼ shell> mysqlbinlog hostname-bin.[0-9]* | mysql å¦æä½ éè¦å ä¿®æ¹å«è¯å¥çæ¥å¿ï¼è¿å¯ä»¥å°mysqlbinlogçè¾åºéæ°æåä¸ä¸ªææ¬æä»¶ã(ä¾å¦ï¼æ³å é¤ç±äºæç§åå è䏿³æ§è¡çè¯å¥)ãç¼è¾å¥½æä»¶åï¼å°å®è¾å ¥å°mysqlç¨åºå¹¶æ§è¡å®å å«çè¯å¥ã mysqlbinlogæä¸ä¸ª--positioné项ï¼åªæå°é£äºå¨äºè¿å¶æ¥å¿ä¸çåç§»éå¤§äºæçäºæä¸ªç»å®ä½ç½®çè¯å¥(ç»åºçä½ç½®å¿ é¡»å¹é ä¸ä¸ªäºä»¶çå¼å§)ãå®è¿æå¨çè§ç»å®æ¥æåæ¶é´çäºä»¶å忢æå¯å¨çé项ãè¿æ ·å¯ä»¥ä½¿ç¨--stop-datetimeé项è¿è¡ç¹å¯¹ç¹æ¢å¤(ä¾å¦ï¼è½å¤è¯´âå°æ°æ®åºåæ»å¨å°ä»å¤©10:30 AMçä½ç½®â)ã 妿MySQLæå¡å¨ä¸æå¤ä¸ªè¦æ§è¡çäºè¿å¶æ¥å¿ï¼å®å ¨çæ¹æ³æ¯å¨ä¸ä¸ªè¿æ¥ä¸å¤çå®ä»¬ãä¸é¢æ¯ä¸ä¸ªè¯´æä»ä¹æ¯ä¸å®å ¨çä¾åï¼ shell> mysqlbinlog hostname-bin.000001 | mysql # DANGER!! shell> mysqlbinlog hostname-bin.000002 | mysql # DANGER!! 使ç¨ä¸æå¡å¨çä¸åè¿æ¥æ¥å¤çäºè¿å¶æ¥å¿æ¶ï¼å¦æç¬¬1个æ¥å¿æä»¶å å«ä¸ä¸ªCREATE TEMPORARY TABLEè¯å¥ï¼ç¬¬2个æ¥å¿å å«ä¸ä¸ªä½¿ç¨è¯¥ä¸´æ¶è¡¨çè¯å¥ï¼åä¼é æé®é¢ãå½ç¬¬1个mysqlè¿ç¨ç»ææ¶ï¼æå¡å¨æ¤é临æ¶è¡¨ãå½ç¬¬2个mysqlè¿ç¨æ³ä½¿ç¨è¯¥è¡¨æ¶ï¼æå¡å¨æ¥å âä¸ç¥é该表âã è¦æ³é¿å æ¤ç±»é®é¢ï¼ä½¿ç¨ä¸ä¸ªè¿æ¥æ¥æ§è¡æ³è¦å¤ççææäºè¿å¶æ¥å¿ä¸çå 容ãä¸é¢æä¾äºä¸ç§æ¹æ³ï¼ shell> mysqlbinlog hostname-bin.000001 hostname-bin.000002 | mysql å¦ä¸ä¸ªæ¹æ³æ¯ï¼ shell> mysqlbinlog hostname-bin.000001 > /tmp/statements.sql shell> mysqlbinlog hostname-bin.000002 >> /tmp/statements.sql shell> mysql -e "source /tmp/statements.sql" mysqlbinlog产ççè¾åºå¯ä»¥ä¸éè¦åæ°æ®æä»¶å³å¯éæ°çæä¸ä¸ªLOAD DATA INFILEæä½ãmysqlbinlogå°æ°æ®å¤å¶å°ä¸ä¸ªä¸´æ¶æä»¶å¹¶åä¸ä¸ªå¼ç¨è¯¥æä»¶çLOAD DATA LOCAL INFILEè¯å¥ãç±ç³»ç»ç¡®å®åå ¥è¿äºæä»¶çç®å½çé»è®¤ä½ç½®ãè¦æ³æ¾å¼æå®ä¸ä¸ªç®å½ï¼ä½¿ç¨--local-loadé项ã
å 为mysqlbinlogå¯ä»¥å°LOAD
DATA INFILEè¯å¥è½¬æ¢ä¸ºLOAD
DATA LOCAL INFILEè¯å¥(ä¹å°±æ¯è¯´ï¼å®æ·»å äºLOCAL)ï¼ç¨äºå¤çè¯å¥ç客æ·ç«¯åæå¡å¨å¿
é¡»é
置为å
许LOCALæä½ãåè§5.6.4èï¼âLOAD DATA LOCALå®å
¨é®é¢ è¦åï¼ä¸ºLOAD DATA LOCALè¯å¥å建çä¸´æ¶æä»¶ä¸ä¼èªå¨å é¤ï¼å 为å¨å®é æ§è¡å®é£äºè¯å¥åéè¦å®ä»¬ãä¸åéè¦è¯å¥æ¥å¿ååºèªå·±å é¤ä¸´æ¶æä»¶ãæä»¶ä½äºä¸´æ¶æä»¶ç®å½ä¸ï¼æä»¶å类似original_file_name-#-#ã --hexdumpé项å¯ä»¥å¨æ³¨éä¸äº§çæ¥å¿å 容çåå è¿å¶è½¬å¨ï¼ shell> mysqlbinlog --hexdump master-bin.000001 ä¸è¿°å½ä»¤çè¾åºåºç±»ä¼¼ï¼ /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
# at 4
#051024 17:24:13 server id 1 end_log_pos 98
# Position Timestamp Type Master ID Size Master Pos Flags
# 00000004 9d fc 5c 43 0f 01 00 00 00 5e 00 00 00 62 00 00 00 00 00
# 00000017 04 00 35 2e 30 2e 31 35 2d 64 65 62 75 67 2d 6c |..5.0.15.debug.l|
# 00000027 6f 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |og..............|
# 00000037 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
# 00000047 00 00 00 00 9d fc 5c 43 13 38 0d 00 08 00 12 00 |.......C.8......|
# 00000057 04 04 04 04 12 00 00 4b 00 04 1a |.......K...|
# Start: binlog v 4, server v 5.0.15-debug-log created 051024 17:24:13
# at startup
ROLLBACK;åå è¿å¶è½¬å¨çè¾åºå å«ä¸é¢çå ç´ ï¼ Â· Position: The byte position within the log file. · Timestamp: The event timestamp. In the example just shown, '9d fc 5c 43' is the representation of '051024 17:24:13' in hexadecimal. · Type: The type of the log event. '0f' means that the example event is a FORMAT_DESCRIPTION_EVENT. The types are: · 00 UNKNOWN_EVENT · This event should never be present in the log. · 01 START_EVENT_V3 · This indicates the start of a log file written by MySQL 4 or earlier. · 02 QUERY_EVENT · The most common type of events. These contain queries executed · on the master. · 03 STOP_EVENT · Indicates that master has stopped. · 04 ROTATE_EVENT · Written when the master switches to a new log file. · 05 INTVAR_EVENT · Used mainly for AUTO_INCREMENT values and if the LAST_INSERT_ID() · function is used in the statement. · 06 LOAD_EVENT · Used for LOAD DATA INFILE in MySQL 3.23. · 07 SLAVE_EVENT · Reserved for future use. · 08 CREATE_FILE_EVENT · Used for LOAD DATA INFILE statements. This indicates the start · of execution of such a statement. A temporary file is created · on the slave. Used in MySQL 4 only. · 09 APPEND_BLOCK_EVENT · Contains data for use in a LOAD DATA INFILE statement. The · data is stored in the temporary file on the slave. · 0a EXEC_LOAD_EVENT · Used for LOAD DATA INFILE statements. The contents of the · temporary file is stored in the table on the slave. · Used in MySQL 4 only. · 0b DELETE_FILE_EVENT · Rollback of LOAD DATA INFILE statement. The temporary file · should be deleted on slave. · 0c NEW_LOAD_EVENT · Used for LOAD DATA INFILE in MySQL 4 and earlier. · 0d RAND_EVENT · Used to send information about random values if the RAND() · function is used in the query. · 0e USER_VAR_EVENT · Used to replicate user variables. · 0f FORMAT_DESCRIPTION_EVENT · This indicates the start of a log file written by MySQL 5 or later. · 10 XID_EVENT · Event indicating commit of XA transaction · 11 BEGIN_LOAD_QUERY_EVENT · Used for LOAD DATA statements in MySQL 5 and later. · 12 EXECUTE_LOAD_QUERY_EVENT · Used for LOAD DATA statements in MySQL 5 and later. · 13 TABLE_MAP_EVENT · Reserved for future use · 14 WRITE_ROWS_EVENT · Reserved for future use · 15 UPDATE_ROWS_EVENT · Reserved for future use · 16 DELETE_ROWS_EVENT · Reserved for future use · Master ID: The server id of the master that created the event. · Size: The size in bytes of the event. · Master Pos: The position of the event in the original master log file. · Flags: 16 flags. · 01 LOG_EVENT_BINLOG_IN_USE_F · Log file correctly closed (Used only in FORMAT_DESCRIPTION_EVENT) · If this flag is set (if the flags are e.g. '01 00') in an · FORMAT_DESCRIPTION_EVENT, then the log file has not been · properly closed. Most probably because of a master crash (for · example, due to power failure). · 02 Reserved for future use. · 04 LOG_EVENT_THREAD_SPECIFIC_F · Set if the event is dependent on the connection it was · executed in (example '04 00'), e.g. if the event uses · temporary tables. · 08 LOG_EVENT_SUPPRESS_USE_F · Set in some circumstances when the event is not dependent on · the current database å ¶å®æ å¿ä¿çç¨äºå°æ¥ä½¿ç¨ã å¨ä»¥åççæ¬ä¸åå è¿å¶è½¬å¨è¾åºçæ ¼å¼å¯è½ä¼æ¹åã mysqlcheck客æ·ç«¯å¯ä»¥æ£æ¥åä¿®å¤MyISAM表ãå®è¿å¯ä»¥ä¼åååæè¡¨ã mysqlcheckçåè½ç±»ä¼¼myisamchkï¼ä½å ¶å·¥ä½ä¸åã主è¦å·®å«æ¯å½mysqldæå¡å¨å¨è¿è¡æ¶å¿ 须使ç¨mysqlcheckï¼èmyisamchkåºç¨äºæå¡å¨æ²¡æè¿è¡æ¶ã使ç¨mysqlcheckç好夿¯ä¸éè¦åæ¢æå¡å¨æ¥æ£æ¥æä¿®å¤è¡¨ã Mysqlcheckä¸ºç¨æ·æä¾äºä¸ç§æ¹ä¾¿ç使ç¨SQLè¯å¥CHECK TABLEãREPAIR TABLEãANALYZE TABLEåOPTIMIZE TABLEçæ¹å¼ãå®ç¡®å®å¨è¦æ§è¡çæä½ä¸ä½¿ç¨ä½¿ç¨åªä¸ªè¯å¥ï¼ç¶åå°è¯å¥åéå°è¦æ§è¡çæå¡å¨ä¸ã æ3ç§æ¹å¼æ¥è°ç¨mysqlcheckï¼ shell> mysqlcheck[options] db_name [tables] shell> mysqlcheck[options] ---database DB1 [DB2 DB3...] shell> mysqlcheck[options] --all--database å¦ææ²¡ææå®ä»»ä½è¡¨æä½¿ç¨---databaseæ--all--databaseé项ï¼åæ£æ¥æ´ä¸ªæ°æ®åºã åå ¶å®å®¢æ·ç«¯æ¯è¾ï¼mysqlcheckæä¸ä¸ªç¹æ®ç¹æ§ãéæ°å½åäºè¿å¶å¯ä»¥æ´æ¹æ£æ¥è¡¨çé»è®¤è¡ä¸º(--check)ãå¦æä½ æ³è¦ä¸ä¸ªå·¥å ·é»è®¤å¯ä»¥ä¿®å¤è¡¨çå·¥å ·ï¼åªéè¦å°mysqlcheckéæ°å¤å¶ä¸ºmysqlrepairï¼æè 使ç¨ä¸ä¸ªç¬¦å·é¾æ¥mysqlrepair龿¥mysqlcheckã妿è°ç¨mysqlrepairï¼å¯æç §å½ä»¤ä¿®å¤è¡¨ã ä¸é¢çåå¯ç¨æ¥æ´æ¹mysqlcheckçé»è®¤è¡ä¸ºï¼
mysqlcheckæ¯æä¸é¢çéé¡¹ï¼ Â· ---helpï¼-ï¼ æ¾ç¤ºå¸®å©æ¶æ¯å¹¶éåºã · --all--databaseï¼-A æ£æ¥æææ°æ®åºä¸çææè¡¨ãä¸ä½¿ç¨---databaseé项ç¸åï¼å¨å½ä»¤è¡ä¸å½åæææ°æ®åºã · --all-in-1ï¼-1 䏿¯ä¸ºæ¯ä¸ªè¡¨ååºä¸ä¸ªè¯å¥ï¼èæ¯ä¸ºå½åæ°æ®åºä¸å¾ å¤ççææè¡¨çæ¯ä¸ªæ°æ®åºæ§è¡ä¸ä¸ªè¯å¥ã · --analyzeï¼-a åæè¡¨ã · --auto-repair 妿æä¸ªè¢«æ£æ¥çè¡¨ç ´åäºï¼èªå¨ä¿®å¤å®ãæ£æ¥å®ææè¡¨åèªå¨è¿è¡ææéè¦çä¿®å¤ã · --character-sets-dir=path å符éçå®è£ ç®å½ãåè§5.10.1èï¼âæ°æ®åæåºç¨å符éâã · --checkï¼-c æ£æ¥è¡¨çé误ã · --check-only-changedï¼-C åªæ£æ¥ä¸æ¬¡æ£æ¥ä»¥æ¥å·²ç»æ´æ¹çææ²¡ææ£ç¡®å ³éç表ã · --compress å缩å¨å®¢æ·ç«¯åæå¡å¨ä¹é´åéçææä¿¡æ¯ï¼å¦æäºè 忝æå缩ï¼ã · ---databaseï¼-B å¤çæ°æ®åºä¸å½åçææè¡¨ã使ç¨è¯¥éé¡¹ï¼ææåååé被ç使°æ®åºåï¼è䏿¯è¡¨åã · ---debug[=debug_options]ï¼-# [debug_options] åè°è¯æ¥å¿ãdebug_optionså符串é常为'd:t:o,file_name'ã · --default-character-set=charset 使ç¨charsetasé»è®¤å符éãåè§5.10.1èï¼âæ°æ®åæåºç¨å符éâã · --extendedï¼-e å¦æä½ æ£ä½¿ç¨è¯¥éé¡¹æ¥æ£æ¥è¡¨ï¼å¯ä»¥ç¡®ä¿å®ä»¬100%å°ä¸è´ï¼ä½éè¦å¾é¿çæ¶é´ã å¦æä½ æ£ä½¿ç¨è¯¥é项æ¥ä¿®å¤è¡¨ï¼åè¿è¡æ©å±ä¿®å¤ï¼ä¸ä½æ§è¡çæ¶é´å¾é¿ï¼èä¸è¿ä¼äº§ç大éçåå¾è¡! · --fastï¼-F åªæ£æ¥æ²¡ææ£ç¡®å ³éç表ã · --forceï¼-f å³ä½¿åºç°SQLé误ä¹ç»§ç»ã · --host=host_nameï¼-h host_name è¿æ¥ç»å®ä¸»æºä¸çMySQLæå¡å¨ã · --medium-checkï¼-m æ§è¡æ¯--extendedæä½æ´å¿«çæ£æ¥ãåªè½åç°99.99%çé误ï¼å¨å¤§å¤æ°æ åµä¸è¿å·²ç»è¶³å¤äºã · --optimizeï¼-o ä¼å表ã · --password[=password]ï¼-p[password] å½è¿æ¥æå¡å¨æ¶ä½¿ç¨çå¯ç ãå¦æä½¿ç¨çé项形å¼(-p)ï¼é项å å¯ç ä¹é´ä¸è½æç©ºæ ¼ã妿å¨å½ä»¤è¡ä¸--passwordæ-pé项å颿²¡æ å¯ç å¼ï¼åæç¤ºè¾å ¥ä¸ä¸ªå¯ç ã · --port=port_numï¼-P port_num ç¨äºè¿æ¥çTCP/IP端å£å·ã · --protocol={TCP | SOCKET | PIPE | MEMORY} 使ç¨çè¿æ¥åè®®ã | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||