ฉันจะนำเข้าไฟล์ 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.