Հոդվածների տեղեկատու
Ինչպե՞ս արտահանել տվյալների ֆայլեր Linux MySQL տվյալների բազայից : Որո՞նք են CSV ձևաչափով արտահանելու հրամանները:
MySQLտվյալների արտահանում
MySQL-ում դուք կարող եք օգտագործել SELECT … INTO OUTFILE հրամանը՝ տվյալները տեքստային ֆայլ հեշտությամբ արտահանելու համար։
Արտահանեք տվյալները՝ օգտագործելով SELECT ... INTO OUTFILE հայտարարությունը
Հետևյալ օրինակում մենք տվյալների աղյուսակը կարտահանենք /tmp/tutorials.txt ֆայլ.
mysql > SELECT * FROM chenweiliang_tbl - > INTO OUTFILE '/tmp/tutorials.txt' ;
Դուք կարող եք սահմանել տվյալների ելքի նշված ձևաչափը հրամանի ընտրանքների միջոցով: Հետևյալ օրինակը նախատեսված է CSV ձևաչափի արտահանման համար.
mysql > SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.csv' - > FIELDS TERMINATED BY ',' ENCLOSED BY ''' - > LINES TERMINATED BY '\ r \ n' ;
Ստորև բերված օրինակում ֆայլ է ստեղծվում ստորակետերով բաժանված արժեքներով:Այս ձևաչափը կարող է օգտագործվել բազմաթիվ ծրագրերի կողմից:
SELECT a ,b ,a + b INTO OUTFILE '/tmp/result.text'FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '''行 终止'\ n'FROM test_table ;
SELECT ... INTO OUTFILE հայտարարությունն ունի հետևյալ հատկանիշները.
- LOAD DATA INFILE-ը SELECT ... INTO OUTFILE, SELECT syntax-ի հակադարձ գործողությունն է:Տվյալների տվյալների բազայից ֆայլ գրելու համար օգտագործեք SELECT ... INTO OUTFILE, իսկ ֆայլը տվյալների բազա նորից կարդալու համար օգտագործեք LOAD DATA INFILE:
- SELECT ... INTO OUTFILE «file_name» ձևի SELECT-ը կարող է ընտրված տողերը գրել ֆայլում:Ֆայլը ստեղծվել է սերվերի հոսթում, այնպես որ դուք պետք է ունենաք FILE թույլտվություն այս շարահյուսությունն օգտագործելու համար:
- Արդյունքը չի կարող լինել գոյություն ունեցող ֆայլ:Կանխել ֆայլի տվյալների կեղծումը:
- Պե՞տք է հաշիվ ունենալ՝ սերվեր մուտք գործելու համար ֆայլերը առբերելու համար:Հակառակ դեպքում SELECT ... INTO OUTFILE ազդեցություն չի ունենա:
- UNIX-ում ֆայլը ստեղծվում է ընթերցելի լինելու համար, և թույլտվությունները պատկանում են MySQL սերվերին:Սա նշանակում է, որ մինչ դուք կարող եք կարդալ ֆայլը, հնարավոր է չկարողանաք ջնջել այն:
Արտահանել աղյուսակը որպես չմշակված տվյալներ
Այն հիմնականում արտադրում է SQL սկրիպտ, որը պարունակում է CREATE TABLE INSERT հրամանները և այլն, որոնք անհրաժեշտ են տվյալների բազան զրոյից վերստեղծելու համար:
Mysqldump-ի միջոցով տվյալներ արտահանելու համար դուք պետք է օգտագործեք –tab տարբերակը՝ արտահանման ֆայլով նշված գրացուցակը նշելու համար, և թիրախը պետք է գրավոր լինի:
Հետևյալ օրինակը արտահանում է տվյալների աղյուսակը chenweiliang_tbl դեպի /tmp գրացուցակ.
$ mysqldump - u root - p - no - create - info - tab = / tmp chenweiliang chenweiliang_tbl 密码******
Արտահանեք տվյալները SQL ձևաչափով
Արտահանեք տվյալները SQL ձևաչափով նշված ֆայլին հետևյալ կերպ.
$ mysqldump - u root - p chenweiliang chenweiliang_tbl > dump 。文本 密码******
Վերոնշյալ հրամանով ստեղծված ֆայլի բովանդակությունը հետևյալն է.
- MySQL 转储8.23 - - 主机:localhost 数据库:chenweiliang ----------------------------------- ---------------------- - 服务器版本 3.23 。58 - - 表结构为表`chenweiliang_tbl` - CREATE TABLE chenweiliang_tbl ( chenweiliang_id INT (11 )NOT NULL的auto_increment , chenweiliang_title VARCHAR (100 )NOT NULL 默认'' , chenweiliang_author VARCHAR (40 )NOT NULL 默认'' , submission_date日期默认NULL , PRIMARY KEY (chenweiliang_id ), UNIQUE KEY AUTHOR_INDEX (chenweiliang_author ))TYPE = MyISAM ; - - 转储数据的表`chenweiliang_tbl` - INSERT INTO chenweiliang_tbl VALUES (1 ,'Learn PHP' ,'John Poul' ,'2007-05-24' ); INSERT INTO chenweiliang_tbl VALUES (2 ,'学习MySQL' ,'Abdul S' ,'2007-05-24' ); INSERT INTO chenweiliang_tbl VALUES (3 ,'JAVA Tutorial' ,'Sanjay' ,'2007-05-06' );
Եթե Ձեզ անհրաժեշտ է արտահանել ամբողջ տվյալների բազայի տվյալները, կարող եք օգտագործել հետևյալ հրամանը.
$ mysqldump - u root - p chenweiliang > database_dump 。文本 密码******
Եթե Ձեզ անհրաժեշտ է կրկնօրինակել բոլոր տվյալների բազաները, կարող եք օգտագործել հետևյալ հրամանը.
$ mysqldump - u root - p - all - databases > database_dump 。文本 密码******
--all-databases տարբերակը ավելացվել է MySQL 3.23.12 և ավելի ուշ:
Այս մեթոդը կարող է օգտագործվել տվյալների բազայի պահուստավորման ռազմավարություն իրականացնելու համար:
Տվյալների աղյուսակները և տվյալների բազաները պատճենեք այլ հոսթներին
Եթե Ձեզ անհրաժեշտ է տվյալները պատճենել մեկ այլ MySQL սերվերի վրա, կարող եք նշել տվյալների բազայի անվանումը և աղյուսակը mysqldump հրամանում:
dump.txt ֆայլում տվյալները կրկնօրինակելու համար կատարեք հետևյալ հրամանը սկզբնաղբյուր հոսթում.
$ mysqldump - u root - p database_name table_name > dump 。文本 密码*****
Եթե ձեր տվյալների բազան ամբողջությամբ կրկնօրինակում եք, ապա ձեզ հարկավոր չէ հատուկ աղյուսակի անուն օգտագործել:
Եթե Ձեզ անհրաժեշտ է պահեստային տվյալների բազան ներմուծել MySQL սերվեր, կարող եք օգտագործել հետևյալ հրամանը՝ օգտագործելով հետևյալ հրամանը, դուք պետք է հաստատեք, որ տվյալների բազան ստեղծվել է.
$ mysql - u root - p database_name < dump 。文本 密码*****
你也可以使用以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的:</ p > $ mysqldump的- ü根- p DATABASE_NAME \ | mysql - h other - host 。com database_name
Վերոնշյալ հրամանն օգտագործում է խողովակ՝ արտահանված տվյալները նշված հեռավոր հոսթին ներմուծելու համար:
Հուսով ենք, որ Չեն Վեյլիանգի բլոգում ( https://www.chenweiliang.com/ ) տեղադրված «Ինչպե՞ս արտահանել տվյալների ֆայլեր Linux MySQL տվյալների բազայից։ Արտահանել CSV հրամանային տող» հոդվածը օգտակար կլինի ձեզ համար։
Ազատորեն կիսվեք այս հոդվածի հղումով՝ https://www.chenweiliang.com/cwl-501.html
