จะนำเข้าไฟล์. sql ใน MySQL ได้อย่างไร


39

ฉันกำลังพยายามนำเข้าไฟล์. sql โดยใช้ MySQL Workbench และฉันได้รับข้อผิดพลาดนี้:

ERROR 1046 (3D000) at line 28: No database selected

ฉันได้สร้างฐานข้อมูลเปล่าก่อนที่มีชื่อเดียวกันกับไฟล์. sql แต่ไม่ได้ผล ฉันได้ลองทำกับไคลเอนต์คำสั่ง mysql โดยใช้:

mysqldump -u root database > file.sql 

แต่มันบอกว่ามีข้อผิดพลาดในไวยากรณ์ SQL ของฉัน นอกจากนี้ฉันไม่ทราบเส้นทางที่ฉันต้องตั้งค่า file.sql


ฉันสามารถนำเข้า mysqldump โดยใช้ mysql ด้านล่าง> ใช้ mydatabase; mysql> source sql_file.sql;
Giridharan Venugopal

คำตอบ:


49

ส่งออก:

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

นำเข้า:

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

9
จะต้องไม่มีที่ว่างระหว่าง-pและpassword
tombom

จะทำอย่างไรถ้าฉันไม่มีรหัสผ่าน

จากนั้นข้ามพารามิเตอร์รหัสผ่าน
Kazimieras Aliulis

Piping ( mysqldump db -uuser -ppass|mysql new_db -uuser -ppass) ไม่จำเป็นต้องใช้ไฟล์ระดับกลาง
Pacerier

2
ฉันต้องใช้ฐานข้อมูลใน MySQL เพื่อที่จะทำงานได้
Noumenon

28

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

mysql> use your_database_name;

mysql> source file.sql;

3
แหล่งที่มา D: /path/file.sql; ใช้งานได้ยอดเยี่ยม! จดจำเครื่องหมายทับด้านหน้าแทนเครื่องหมายทับด้านหลัง
Imdad

6

อีกวิธีในการนำเข้าไฟล์การถ่ายโอนข้อมูลเมื่อsource <filename>ไม่ทำงานคือให้ทำสิ่งต่อไปนี้:

เท

~> mysqldump --user=<user> --password=<password> <db_name> > <export_file_name>.sql

นำเข้า

> mysql -u <user> -p <pass> <db_name>
mysql> USE <db_name>;  (if you didn't already select)
mysql> \. ~/<export_file_name>.sql

5

คำตอบของjuergen d ถูกต้องแน่นอน อย่างไรก็ตามเมื่อพิจารณาถึงข้อความแสดงข้อผิดพลาดคุณสามารถเพิ่มลงในไฟล์ SQL ของคุณที่บรรทัดเริ่มต้นเช่น:

USE your_database_name;

สิ่งนี้ควรทำงานและให้คุณนำเข้าภายใต้ Workbench

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


2

คุณไม่มีรหัสผ่านในคำสั่ง ใช้สิ่งต่อไปนี้

mysql --u [username] --password=[password] [database name] < [dump file]

1

สำหรับ Windows ในไดเรกทอรีการติดตั้งเซิร์ฟเวอร์ MySQL (เช่นC:\Program Files\MySQL\MySQL Server 5.5) ในmy.ini fileเพิ่มบรรทัดต่อไปนี้ภายใต้[mysqld]ในส่วนเซิร์ฟเวอร์:

max_allowed_packet = 16M

และบันทึกการเปลี่ยนแปลง (หากคุณไม่ได้รับอนุญาตให้บันทึกให้คัดลอกและวางลงบนเดสก์ท็อปแล้วแก้ไขอีกครั้งจากนั้นวางในตำแหน่งเดียวกัน)

หลังจากนั้นให้รีสตาร์ทเซิร์ฟเวอร์ MySQL ของคุณ

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