ฉันจะนำเข้าไฟล์ SQL โดยใช้บรรทัดคำสั่งใน MySQL ได้อย่างไร


2035

ฉันมีไฟล์ที่มีการส่งออกจาก.sql phpMyAdminฉันต้องการนำเข้าลงในเซิร์ฟเวอร์อื่นโดยใช้บรรทัดคำสั่ง

ฉันมีการติดตั้งWindows Server 2008 R2 ฉันวาง.sqlไฟล์ไว้บนไดรฟ์ Cและฉันลองคำสั่งนี้

database_name < file.sql

มันไม่ทำงาน. ฉันได้รับข้อผิดพลาดทางไวยากรณ์

  • ฉันจะนำเข้าไฟล์นี้โดยไม่มีปัญหาได้อย่างไร
  • ฉันต้องสร้างฐานข้อมูลก่อนหรือไม่?

7
อาจเป็นไปได้ซ้ำกันของRestore MYSQL Dump File พร้อม Command Line
— Bill Karwin

2
อาจเป็นไปได้ซ้ำกับstackoverflow.com/questions/11407349/…
— AZinkey

7
อยู่กับพวกที่ซ้ำกันเหล่านี้เหรอ? นี่เป็นคำถามที่เป็นประโยชน์โดยมีจุดประสงค์ของตัวเอง
— Valentino Pereira

@ValentinoPereira คุณได้ตรวจสอบวันที่คำถามดั้งเดิมก่อนที่จะตรวจสอบคนที่ซ้ำกัน
— AZinkey

คุณสามารถแบ่งปันตัวอย่างที่ทำซ้ำได้หรือไม่ database < file.sqlดูไม่เหมือนคำสั่งใด ๆ กับฉันและถ้าคุณเห็นข้อผิดพลาดทางไวยากรณ์โปรดแบ่งปันพวกเขา
— Nico Haase

คำตอบ:


3772

ลอง:

mysql -u username -p database_name < file.sql

ตรวจสอบตัวเลือก MySQL

หมายเหตุ-1:file.sqlมันจะดีกว่าที่จะใช้เส้นทางที่เต็มรูปแบบของไฟล์ของ SQL

หมายเหตุ -2:ใช้-Rและ--triggersเพื่อให้รูทีนและทริกเกอร์ของฐานข้อมูลดั้งเดิม พวกเขาจะไม่คัดลอกโดยค่าเริ่มต้น

หมายเหตุ -3คุณอาจต้องสร้างฐานข้อมูล (ว่าง) จาก mysql หากยังไม่มีอยู่และ SQL ที่ส่งออกไม่มีCREATE DATABASE(ส่งออกด้วย--no-create-dbหรือมี-nตัวเลือก) ก่อนที่คุณจะสามารถนำเข้าได้


2
เมื่อฉันเรียกใช้ไฟล์จากโปรแกรมเช่นคางคกฉันจะไม่เกิดข้อผิดพลาด แต่เมื่อฉันเรียกใช้จากบรรทัดคำสั่งฉันได้รับข้อผิดพลาดที่ฉันพูดถึง
— Jaylen

110
โปรดทราบว่าใช่คุณต้องสร้างฐานข้อมูล (ว่าง) จาก mysql หากยังไม่มีอยู่ก่อนที่คุณจะสามารถนำเข้าได้
— Skippy le Grand Gourou

17
Yups อย่าลืมสร้างฐานข้อมูลเปล่า (ถ้าฐานข้อมูลไม่มีอยู่ก่อนหน้านี้) จากคอนโซลของ MySQL เช่น:CREATE DATABASE db-name;
— Qasim

3
อย่าลืมตรวจสอบว่าไฟล์สำรองไม่มี "ใช้ 'original_db'" อยู่ในนั้น แม้ว่าฉันจะระบุการคืนค่าเป็นฐานข้อมูลใหม่ "mysql new_db <dump.sql" แต่ไฟล์การถ่ายโอน sql นั้นมีอยู่ในนั้นและจะเขียนทับฐานข้อมูลสดของฉัน ไม่แน่ใจว่ามีตัวเลือกที่จะบังคับให้ใช้ DB ที่ระบุและไม่สนใจ "use 'original_db'" ในไฟล์ sql หรือไม่
— Shaakir

7
@ โจใช่ถ้าคุณมีช่องว่างระหว่าง '-p' และ 'รหัสผ่าน' ก็คิดว่า 'รหัสผ่าน' เป็นชื่อฐานข้อมูล หรือคุณสามารถพิมพ์ '-p' โดยไม่ต้องใช้รหัสผ่านจากนั้นคุณจะได้รับพร้อมท์ให้ใส่รหัสผ่านเมื่อคุณกด Enter
— NotJay

765

การใช้mysqldump ทั่วไปสำหรับการทำสำเนาสำรองของฐานข้อมูลทั้งหมด:

shell> mysqldump db_name > backup-file.sql

คุณสามารถโหลดไฟล์ดัมพ์กลับเข้าสู่เซิร์ฟเวอร์ดังนี้:

ยูนิกซ์

shell> mysql db_name < backup-file.sql

พรอมต์คำสั่งเดียวกันในWindows :

mysql -p -u [user] [database] < backup-file.sql

PowerShell

C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"

บรรทัดคำสั่ง MySQL

mysql> use db_name;
mysql> source backup-file.sql;

@ ไมค์คุณพยายามที่จะเปิดมันในmysql>บรรทัดคำสั่ง? คุณควรใช้เชลล์แทน
— vladkras

ฉันจะใช้เชลล์ได้อย่างไร ฉันใช้ mysql5.6 บน windows Server 2008
— Jaylen

การใช้ Windows PowerShell การพิมพ์ MySQL db_name <file.sql ฉันได้รับข้อผิดพลาดต่อไปนี้ตัวดำเนินการ '<' ถูกสงวนไว้สำหรับการใช้งานในอนาคต
— Jaylen

31
ระวังเกี่ยวกับการใช้> เพื่อเปลี่ยนเส้นทาง mysqldump ไปยังไฟล์โดยเฉพาะถ้าคุณต้องการควบคุมการเข้ารหัส คุณอาจต้องการใช้พารามิเตอร์ --result-file แทนเพื่อให้การเข้ารหัสไม่ได้รับการควบคุมโดยเชลล์ / OS
— เบอร์นาร์ดเฉิน

1
ใช่ แต่ ... ทำไมไม่ลองวิ่งmysqlตรงจาก Powershell ล่ะ
— ชาร์ลส์วู้ด

329

เกี่ยวกับเวลาที่ใช้สำหรับการนำเข้าไฟล์ขนาดใหญ่: ที่สำคัญที่สุดก็ต้องใช้เวลามากขึ้นเพราะการตั้งค่าเริ่มต้นของ MySQL autocommit = trueเป็น คุณต้องตั้งค่านั้นก่อนที่จะนำเข้าไฟล์ของคุณจากนั้นตรวจสอบว่าการนำเข้าทำงานอย่างไรเหมือนอัญมณี

คุณเพียงแค่ต้องทำสิ่งต่อไปนี้:

mysql> use db_name;

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;

5
มีวิธีทำในบรรทัดคำสั่งเดียวในคำสั่ง mysql ที่ใช้เพื่อนำเข้าหรือไม่
— Volomike

คำตอบที่ดีที่สุด มันเป็นsourceคำสั่งที่ฉันลืม ส่วนใหญ่ของเราต้องการที่จะทำเช่นนี้ในขณะที่เรากำลังเข้าสู่ระบบเป็นคำสั่งแบบสแตนด์อโลนในหมู่คำสั่งอื่น ๆ ที่ไม่ได้มาตรฐานเข้าสู่ระบบ> ฉีด> ออกจากระบบ oneliner ในด้านบนของ Google SERPs
— davidkonrad

19
ผมเห็นว่านี่คือคำตอบที่ดีที่สุด autocommit=0ส่วนทำให้โลกของความแตกต่างในแง่ของความเร็ว
— aexl

2
จะautocommit=0ทำงานกับไฟล์ขนาดใหญ่กว่านี้ได้ไหม เช่นไฟล์ 8gb sql
— มือใหม่

3
ไม่จำเป็นต้องปิดautocommitเสมอไป SET autocommit=0;มันคุ้มค่าในการตรวจสอบการถ่ายโอนฐานข้อมูลในการแก้ไขแล้วมันอาจเริ่มต้นด้วย
— hashchange

127

ในบรรดาคำตอบทั้งหมดสำหรับปัญหาข้างต้นนี่เป็นคำตอบที่ดีที่สุด:

 mysql> use db_name;
 mysql> source file_name.sql;

แนะนำข้างต้นล้มเหลวเนื่องจากข้อผิดพลาดที่ฐานข้อมูลมีอยู่แล้ว แต่ดูเหมือนว่าจะใช้งานได้
— luky

74

เราสามารถใช้คำสั่งนี้เพื่อนำเข้า SQL จากบรรทัดคำสั่ง:

mysql -u username -p password db_name < file.sql

ตัวอย่างเช่นถ้าชื่อผู้ใช้และรหัสผ่านคือroot passwordและคุณมีชื่อฐานข้อมูลเป็นbankไฟล์ SQL bank.sqlคือ จากนั้นให้ทำดังนี้

mysql -u root -p password bank < bank.sql

จำไว้ว่าไฟล์ SQL ของคุณอยู่ที่ไหน หากไฟล์ SQL ของคุณอยู่ในDesktopโฟลเดอร์ / ไดเรกทอรีให้ไปที่ไดเรกทอรีเดสก์ท็อปและป้อนคำสั่งดังนี้:

~ ? cd Desktop
~/Desktop ? mysql -u root -p password bank < bank.sql

และถ้าคุณอยู่ในProjectไดเรกทอรีและไฟล์ SQL ของคุณอยู่ในDesktopไดเรกทอรี หากคุณต้องการเข้าถึงจากProjectไดเรกทอรีคุณสามารถทำสิ่งนี้ได้:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql

22
ไม่ควรมีช่องว่างระหว่าง-pและpassword
— Ejaz

Jap สิ่งนี้จะไม่ทำงาน ถูกต้องจะเป็นmysql -u root -p"password" bank < bank.sql
— Armin

4
ทำไมคุณไม่ตอบในบรรทัดเดียว? mysql -u username -ppassword db_name < file.sql
— Naveed

6
ในขณะที่สิ่งนี้ไม่เกี่ยวข้องกับคำถาม / คำตอบนี้อย่างสมบูรณ์เมื่อคุณทำงานกับฐานข้อมูลที่ไม่สำคัญคุณไม่ควรป้อนรหัสผ่านในคำสั่งเดียวกันในข้อความธรรมดา การไม่ระบุรหัสผ่านเป็นส่วนหนึ่งของคำสั่งจะแจ้งให้คุณใส่รหัสผ่านซึ่งคุณสามารถป้อนได้อย่างปลอดภัย
— asgs

3
โดยเฉพาะอย่างยิ่งเนื่องจาก.bash_history
— Neil Chowdhury

64

วิธีที่ง่ายที่สุดในการนำเข้าสู่สคีมาของคุณ:

เข้าสู่ระบบเพื่อ mysql และปัญหาด้านล่างพูดถึงคำสั่ง

mysql> use your_db_name;

mysql> source /opt/file.sql;

5
นี้จะทำงานได้โดยไม่ต้องใช้ '' คำสั่งสำหรับการทิ้งกับฐานข้อมูล multilpe ในนั้น
— เฮย์เดน Thring

1
ฉันพยายามนำเข้าดัมพ์จากฐานข้อมูลที่มีชื่อแตกต่างกัน แต่ด้วยโครงสร้างเดียวกันคำตอบที่ถูกเลือกโดยผู้เขียนไม่ทำงานมันสร้างฐานข้อมูลใหม่ที่ตั้งชื่อตามฐานข้อมูลในไฟล์ดัมพ์ คำตอบนี้ตรงนี้ทำในสิ่งที่ฉันต้องการคนขอบคุณ
— Wuelber Castillo

1
ที่ดี! exaclty สิ่งที่ฉันกำลังมองหา!
— Sergei Zahharenko

2
สิ่งนี้จะตรวจสอบการทำงานของสคริปต์ดีกว่าคำตอบอื่น ๆ
— refex

61

หากคุณมีฐานข้อมูลอยู่แล้วให้ใช้สิ่งต่อไปนี้เพื่อนำเข้าdumpหรือsqlไฟล์:

mysql -u username -p database_name < file.sql

หากคุณไม่จำเป็นต้องสร้างฐานข้อมูลที่เกี่ยวข้อง (ว่างเปล่า) ใน MySQL สำหรับการเข้าสู่ระบบMySQLคอนโซลครั้งแรกโดยการเรียกใช้คำสั่งต่อไปนี้ใน terminal หรือใน cmd

mysql -u userName -p;

และเมื่อได้รับแจ้งให้ระบุรหัสผ่าน

จากนั้นสร้างฐานข้อมูลและใช้งาน:

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

จากนั้นอิมพอร์ตsqlหรือdumpไฟล์ไปยังฐานข้อมูล

mysql> source pathToYourSQLFile;

หมายเหตุ: หากเทอร์มินัลของคุณไม่ได้อยู่ในตำแหน่งที่ไฟล์dumpหรือsqlไฟล์นั้นมีอยู่ให้ใช้พา ธ สัมพัทธ์ข้างต้น


คำตอบของคุณมีวิธีแก้ปัญหาสำหรับผู้เริ่มต้น MySQL อย่างฉัน: 1.สร้างฐานข้อมูลหากไม่มีอยู่ 2.ชี้ไฟล์ต้นฉบับไปที่ฐานข้อมูลที่สร้างขึ้นเพื่อนำเข้าข้อมูล / เมตาดาต้า
— Sumanth Lazarus

60
  1. เปิดบรรทัดคำสั่ง MySQL
  2. พิมพ์เส้นทางของไดเรกทอรี mysql bin ของคุณและกด Enter
  3. วางไฟล์ SQL ของคุณไว้ในbinโฟลเดอร์ของเซิร์ฟเวอร์ mysql
  4. สร้างฐานข้อมูลใน MySQL
  5. ใช้ฐานข้อมูลเฉพาะที่คุณต้องการนำเข้าไฟล์ SQL
  6. ประเภทsource databasefilename.sqlและEnter
  7. การอัปโหลดไฟล์ SQL ของคุณสำเร็จแล้ว

2
ype เส้นทางของไดเรกทอรี bin mysql ของคุณและกด
— Ramesh Pareek

46

วิธีแก้ปัญหาที่เหมาะกับฉันอยู่ด้านล่าง:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;

สิ่งนี้ใช้ได้สำหรับฉันโดยใช้ไคลเอนต์ Command Line ของ MySQL หลังจากวางไฟล์ sql ของฉันลงใน windows explorer / bin directory view ที่เหมาะสม ขอบคุณ
— klewis

3
ค่อนข้างช้า แต่ไม่ได้หยุดอยู่ระหว่างนั้นและอย่าบอกว่าเซิร์ฟเวอร์ MySQL ได้หายไป
— Jaskaran Singh เมื่อ

39

หากต้องการดัมพ์ฐานข้อมูลลงในไฟล์ SQL ให้ใช้คำสั่งต่อไปนี้

mysqldump -u username -p database_name > database_name.sql

ในการอิมพอร์ตไฟล์ SQL ไปยังฐานข้อมูล (ตรวจสอบให้แน่ใจว่าคุณอยู่ในไดเร็กทอรีเดียวกันกับไฟล์ SQL หรือระบุพา ธ เต็มไปยังไฟล์) ให้ทำ:

mysql -u username -p database_name < database_name.sql

37

ไปที่ไดเรกทอรีที่คุณใช้งาน MySQL -uสำหรับชื่อผู้ใช้และ-pเพื่อขอรหัสผ่าน:

C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql

5
ฉันคิดว่ามันจะมีประโยชน์มากขึ้นสำหรับ OP และคำถามเพิ่มเติมเมื่อคุณเพิ่มคำอธิบายลงในความตั้งใจของคุณ
— Reporter

ที่จะทำงานเฉพาะในกรณีที่คุณมี mysql.exe ที่กำหนดไว้ในตัวแปรสภาพแวดล้อมหน้าต่างของคุณ ถ้าไม่คุณควรพิมพ์พา ธ ทั้งหมดไปยังไฟล์ mysql.exe และไวยากรณ์ของคุณผิด เช่น: "d: \ wamp \ bin \ mysql \ mysql5.5.8 \ bin \ mysql.exe -u YOUR_USERNAME -p DB_NAME <FILENAME.SQL" ข้อมูลเพิ่มเติมที่นี่: wpy.me/en/blog/ ......
— wappy

31

ฉันคิดว่าเป็นมูลค่าการกล่าวขวัญว่าคุณสามารถโหลดไฟล์ gzipped (บีบอัด)ด้วยzcatเช่นที่แสดงด้านล่าง:

zcat database_file.sql.gz | mysql -u username -p -h localhost database_name

28

ในการนำเข้าฐานข้อมูลเดียวให้ใช้คำสั่งต่อไปนี้

mysql -u username -p password dbname < dump.sql

หากต้องการอิมพอร์ตดัมพ์หลายฐานข้อมูลให้ใช้คำสั่งต่อไปนี้

mysql -u username -p password < dump.sql


17

สำหรับการนำเข้าไฟล์ SQL หลายไฟล์ในครั้งเดียวใช้สิ่งนี้:

# Unix-based solution
for i in *.sql;do mysql -u root -pPassword DataBase < $i;done

สำหรับการนำเข้าอย่างง่าย:

# Unix-based solution
mysql -u root -pPassword DataBase < data.sql

สำหรับWAMP :

#mysqlVersion replace with your own version
C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql

สำหรับ XAMPP:

C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql

16

คุณไม่จำเป็นต้องระบุชื่อของฐานข้อมูลบนบรรทัดคำสั่งหากไฟล์. sql มีCREATE DATABASE IF NOT EXISTS db_nameและUSE db_nameคำสั่ง

ตรวจสอบให้แน่ใจว่าคุณกำลังเชื่อมต่อกับผู้ใช้ที่มีสิทธิ์ในการสร้างฐานข้อมูลหากฐานข้อมูลที่กล่าวถึงในไฟล์. sql ไม่มีอยู่


14

นำเข้าฐานข้อมูล

  1. ไปที่ไดรฟ์:

    command: d:
  2. เข้าสู่ระบบ MySQL

    command: c:\xampp\mysql\bin\mysql -u root -p
  3. มันจะขอ pwd ใส่มัน:

    pwd
  4. เลือกฐานข้อมูล

    use DbName;
  5. ระบุชื่อไฟล์

    \.DbName.sql

11

ไปที่ไดเรกทอรีที่คุณมี MySQL

 c:\mysql\bin\> mysql -u username -p password database_name <
 filename.sql

รวมถึงการถ่ายโอนฐานข้อมูลทั้งหมดใช้-all-databasesตัวเลือกและไม่จำเป็นต้องระบุชื่อฐานข้อมูลอีกต่อไป

mysqldump -u username -ppassword –all-databases > dump.sql

หรือคุณสามารถใช้ไคลเอนต์ GUI บางตัวเช่น SQLyog เพื่อทำสิ่งนี้


11

ใช้:

mysql -u root -p password -D database_name << import.sql

ใช้ความช่วยเหลือ MySQL สำหรับรายละเอียด - mysql --help-

ฉันคิดว่าสิ่งเหล่านี้จะเป็นตัวเลือกที่มีประโยชน์ในบริบทของเรา:

[~]$ mysql --help
mysql  Ver 14.14 Distrib 5.7.20, for osx10.12 (x86_64) using  EditLine wrapper
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Usage: mysql [OPTIONS] [database]
  -?, --help          Display this help and exit.
  -I, --help          Synonym for -?
  --bind-address=name IP address to bind to.
  -D, --database=name Database to use.
  --delimiter=name    Delimiter to be used.
  --default-character-set=name Set the default character set.
  -f, --force         Continue even if we get an SQL error.
  -p, --password[=name] Password to use when connecting to server.
  -h, --host=name     Connect to host.
  -P, --port=#        Port number to use for connection or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306).
  --protocol=name     The protocol to use for connection (tcp, socket, pipe,
  -s, --silent        Be more silent. Print results with a tab as separator, each row on new line.
  -v, --verbose       Write more. (-v -v -v gives the table output format).
  -V, --version       Output version information and exit.
  -w, --wait          Wait and retry if connection is down.

ความสนุกคืออะไรถ้าเรากำลังนำเข้าฐานข้อมูลขนาดใหญ่และไม่มีแถบความคืบหน้า ใช้ Pipe Viewer และดูการถ่ายโอนข้อมูลผ่านไปป์

สำหรับ Mac brew install pv

สำหรับ Debian / Ubuntu apt-get install pvUbuntu,

สำหรับคนอื่น ๆ อ้างถึงpv - Pipe Viewer

pv import.sql | mysql -u root -p password -D database_name

1.45GiB 1:50:07 [339.0KiB/s]   [=============>      ] 14% ETA 11:09:36
1.46GiB 1:50:14 [ 246KiB/s]     [=============>      ] 14% ETA 11:09:15
1.47GiB 1:53:00 [ 385KiB/s]     [=============>      ] 14% ETA 11:05:36

สำหรับ Centos:yum install pv
— Jonny


9

ในขณะที่คำตอบส่วนใหญ่ที่นี่เพียงแค่พูดถึงคำสั่งง่ายๆ

mysql -u database_user -p [db_name] <database_file.sql

วันนี้มันค่อนข้างบ่อยที่ฐานข้อมูลและตารางมีการเปรียบเทียบ utf8 ที่คำสั่งนี้ไม่เพียงพอ การมีการจัดเรียง utf8 ในตารางที่เอ็กซ์พอร์ตจำเป็นต้องใช้คำสั่งนี้:

mysql -u database_user -p --default-character-set = utf8 [db_name] <database_file.sql

Surley สามารถใช้กับชุดอักขระอื่นได้เช่นกันวิธีแสดงสัญกรณ์ที่ถูกต้องสามารถดูได้ที่นี่:

https://dev.mysql.com/doc/refman/5.7/en/show-collation.html

หนึ่งความคิดเห็นกล่าวถึงด้วยว่าหากฐานข้อมูลไม่เคยมีอยู่จะต้องสร้างฐานข้อมูลเปล่าก่อน นี่อาจจะถูกต้องในบางกรณี แต่ขึ้นอยู่กับไฟล์ส่งออก หากไฟล์ที่เอ็กซ์พอร์ตมีอยู่แล้วคำสั่งเพื่อสร้างฐานข้อมูลดังนั้นฐานข้อมูลจะไม่ถูกสร้างขึ้นในขั้นตอนที่แยกจากกันซึ่งอาจทำให้เกิดข้อผิดพลาดในการนำเข้า ดังนั้นในการนำเข้าขอแนะนำให้ดูที่ไฟล์ก่อนเพื่อให้ทราบว่ามีคำสั่งใดรวมอยู่ในการส่งออกควรทราบการตั้งค่าโดยเฉพาะอย่างยิ่งหากไฟล์มีขนาดใหญ่มากและอ่านยากในเครื่องมือแก้ไข

ยังมีพารามิเตอร์เพิ่มเติมสำหรับคำสั่งที่แสดงและอธิบายที่นี่:

https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html

หากคุณใช้เวอร์ชันฐานข้อมูลอื่นให้พิจารณาการค้นหาเวอร์ชันที่สอดคล้องกันของคู่มือด้วย ลิงก์ที่กล่าวถึงอ้างถึง MySQL เวอร์ชัน 5.7


9

สำหรับการส่งออกฐานข้อมูล:

mysqldump -u username -p database_name > file.sql

สำหรับการนำเข้าฐานข้อมูล:

mysql -u username -p database_name < file.sql

8

คำสั่งดังต่อไปนี้การทำงานสำหรับฉันจากบรรทัดคำสั่ง (cmd) บน Windows 7 บนWAMP

d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql

8

คุณสามารถลองใช้แบบสอบถามนี้

ส่งออก:

mysqldump -u username –-password=your_password database_name > file.sql

นำเข้า:

mysql -u username –-password=your_password database_name < file.sql

และรายละเอียดตามลิงค์นี้:

https://chartio.com/resources/tutorials/importing-from-and-exporting-to-files-using-the-mysql-command-line/


7

ฉันคิดว่ามันจะมีประโยชน์สำหรับผู้ที่ใช้Mac OS X :

/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql

แทนที่xamppด้วยmampหรือเว็บเซิร์ฟเวอร์อื่น ๆ


6

บางครั้งพอร์ตที่กำหนดรวมถึงที่อยู่ IPของเซิร์ฟเวอร์ของฐานข้อมูลนั้นก็มีความสำคัญ ...

mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql 

6

นำเข้าสู่ฐานข้อมูล:

mysql -u ชื่อผู้ใช้ -p database_name </ พา ธ ไฟล์ / file_name.sql

ส่งออกจากฐานข้อมูล:

mysqldump -u ชื่อผู้ใช้ -p database_name> / พา ธ ไฟล์ / file_name.sql

หลังจากคำสั่งเหล่านี้ระบบจะถามรหัสผ่าน MySQL ของคุณ


5

เพื่อวัตถุประสงค์ในการสำรองข้อมูลทำให้ไฟล์ BAT และเรียกใช้ไฟล์ BAT นี้โดยใช้Task Scheduler จะทำการสำรองข้อมูลของฐานข้อมูล เพียงแค่คัดลอกบรรทัดต่อไปนี้และวางในแผ่นจดบันทึกแล้วบันทึกไฟล์. bat และเรียกใช้บนระบบของคุณ

@echo off
for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i
for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i
for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i
for /f %%i in ('time /t') do set DATE_TIME=%%i
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i

"C:\Program Files\MySQL\mysql server 5.5\bin\mysqldump" -u username -ppassword mysql>C:/%DATE_DAY%_%DATE_TIME%_database.sql

5

ขั้นตอนต่อไปนี้ช่วยในการอัปโหลดfile.sqlไปยังฐานข้อมูล MySQL

ขั้นตอนที่ 1: อัปโหลดfile.sql.zipไปยังไดเรกทอรีใด ๆ และเปิดเครื่องรูดมี
หมายเหตุ : sudo apt-get install unzip : sudo apt-get unzip file.sql.zip
ขั้นตอนที่ 2: ตอนนี้ไปที่ไดเร็กทอรีที่ ตัวอย่าง:cd /var/www/html

ขั้นตอนที่ 3: mysql -u username -p database-name < file.sql
ป้อนรหัสผ่านและรอจนกว่าการอัปโหลดจะเสร็จสมบูรณ์


5

ฉันยังคงพบปัญหาที่ฐานข้อมูลไม่ได้ถูกสร้างขึ้น

ฉันแก้ไขมันเช่นนี้

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.