บรรทัดคำสั่งการนำเข้า / ส่งออกของฐานข้อมูล MySQL ใน Windows


38

จะส่งออก / นำเข้าฐานข้อมูลใน MySQL ผ่านทางบรรทัดคำสั่งได้อย่างไร

การกำหนดค่าระบบ MySQL ติดตั้งเซิร์ฟเวอร์WampServer

ระบบปฏิบัติการ: Windows

คำแนะนำสำหรับโฮสต์ในพื้นที่ของฉันไม่ใช่โฮสติ้งแบบสด ...


ดูเพิ่มเติมได้ที่: stackoverflow.com/questions/105776/ …
Justin Bennett

คำตอบ:


44

ใช้สิ่งนี้เพื่อการส่งออก:

mysqldump -u username -p databasename > filename.sql

นี่คือตัวอย่างการส่งออกของฉันใน CMD และฉันจะบันทึกในไดรฟ์ D: \

mysqldump -u root -pmypassword pos > d:\pos.sql

นี่คือนครั้งแรกที่ทำส่งออกโดยใช้ SQL, SQL บอกฉันฉันสามารถวางที่ใดที่เป็นไฟล์ของฉันอาจจะในเดสก์ทอปหรือไดรฟ์ D หรือมีสถานที่เฉพาะใด ๆ ที่ผ่านมาผมมีไฟล์ SQL ของฉัน

1
คุณสามารถวางไฟล์ของคุณได้ทุกที่ตราบใดที่คุณมีโฟลเดอร์ mysql bin ใน PATH ของคุณ อีกทางเลือกหนึ่งคือเรียก mysql และ mysqldump executables โดยใช้พา ธ แบบเต็ม (เช่น F: \ wamp \ bin \ mysql \ mysql5.1.36 \ bin \ mysql และ F: \ wamp \ bin \ mysql5.1.36 \ bin \ mysql5.1.36 \ bin \ mysqldump) ในภาพหน้าจอของคุณปัญหาคือว่าคุณไม่ได้ระบุชื่อผู้ใช้และรหัสผ่านเมื่อเริ่มต้นโปรแกรม mysql (คุณระบุด้วย: mysql -u USERNAME -p <enter> จากนั้นพิมพ์รหัสผ่านของคุณ)

22

ในการสำรองข้อมูล:

mysqldump -u user -p database > backup.sql

วิธีนำเข้า:

mysql -u user -p database < backup.sql

mysql> mysqldump -u root -p sale> backup.sql ->; ข้อผิดพลาด 1064 (42000): คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ; ตรวจสอบคู่มือที่สอดคล้องกับรุ่นเซิร์ฟเวอร์ MySQL ของคุณสำหรับไวยากรณ์ที่ถูกต้องเพื่อใช้งานใกล้กับ 'mysql dump -u root -p sale> backup.sql' ที่บรรทัด 1
Bharanikumar

@Bharanikumar ฉันไม่คิดว่าคุณไม่ทราบ แต่คุณต้องใช้ mysqldump.exe ไม่ใช่ mysql.exe
appl3r

9

ทำตามขั้นตอนต่อไปนี้

  1. เรียกใช้คำสั่ง cmd
  2. พิมพ์ c: หรือ d: on command prompt สิ่งนี้จะขึ้นอยู่กับการติดตั้งเซิร์ฟเวอร์ WAMP ของคุณ
  3. สมมติว่าคุณได้ติดตั้ง wamp บนไดรฟ์ C:
  4. C:\>cd wamp
  5. C:\wamp>cd bin
  6. C:\wamp\bin>cd mysql
  7. C:\wamp\bin\mysql>cd mysql15.5.8
  8. C:\wamp\bin\mysql\mysql15.5.8>cd bin
  9. C:\wamp\bin\mysql\mysql15.5.8\bin>mysql.exe -u root

ตอนนี้คุณจะได้รับคำสั่ง mysql

** หมายเหตุที่นี่ MySql เวอร์ชั่นของฉันภายใน 15.5.8 มันอาจเปลี่ยนไปตามการติดตั้ง wamp ของคุณ ตอนนี้คุณสามารถทำตามคำตอบโดย @Matei ฉันกำลังวางคำตอบของเขาที่นี่ หวังว่านี่จะช่วยคุณได้

เพื่อส่งออก:

mysqldump -u username -p databasename > filename.sql

และเพื่อนำเข้า:

mysql -u username -p databasename < filename.sql

3

ไปที่โฟลเดอร์ C:\wamp\bin\mysql\MYSQL_VERSION\bin

กด Shift + คลิกขวาในโฟลเดอร์นั้นและเลือก "เปิดหน้าต่างคำสั่งที่นี่" จากเมนูที่ปรากฏขึ้น

จะเป็นการเปิดหน้าต่างคำสั่งในพา ธ ที่คุณมีอยู่แล้ว C:\wamp\bin\mysql\MYSQL_VERSION\bin

ป้อนคำสั่ง MySQL ที่คุณชอบด้วยไฟล์เอ็กซีคิ้วท์ที่คุณพบในโฟลเดอร์นั้น

ในการส่งออก:

mysqldump -u db_user -pDB_PASSWORD db_name > /path/to/save/backup_file.sql

วิธีนำเข้า:

mysql -u db_user -p db_name < /path/to/save/backup_file.sql

ผู้ใช้มีรหัสผ่าน (DB_PASSWORD) และต้องอยู่หลัง -p โดยตรงโดยไม่ต้องเว้นวรรค ระวังโปรแกรมรหัสผ่านอื่น ๆ ที่สามารถมองเห็นได้

หากคุณไม่ได้ระบุรหัสผ่านในคำสั่งโดยตรงหลังจากแฟล็ก -p และใช้ db_name คุณจะถูกขอให้ใส่รหัสผ่านแบบโต้ตอบทุกครั้งที่คุณรันคำสั่ง

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

ดังนั้นจึงเป็นการดีที่สุดที่จะปฏิบัติตามคำแนะนำนี้:

การอ้างอิงเอกสาร MySQL: ( http://dev.mysql.com/doc/refman/5.1/en/password-security-user.html ):

เก็บรหัสผ่านของคุณในไฟล์ตัวเลือก ตัวอย่างเช่นบน Unix คุณสามารถแสดงรายการรหัสผ่านของคุณในส่วน [ลูกค้า] ของไฟล์. my.cnf ในโฮมไดเร็กตอรี่ของคุณ:

[client]
password=your_pass

เพื่อรักษาความปลอดภัยของรหัสผ่านคุณไม่ควรเข้าถึงใคร ๆ นอกจากตัวคุณเอง เพื่อให้แน่ใจว่าสิ่งนี้ตั้งโหมดการเข้าถึงไฟล์เป็น 400 หรือ 600 ตัวอย่างเช่น:

shell> chmod 600 .my.cnf

หากต้องการตั้งชื่อจากบรรทัดคำสั่งไฟล์ตัวเลือกเฉพาะที่มีรหัสผ่านให้ใช้--defaults-file=file_nameตัวเลือกโดยที่file_nameชื่อพา ธ แบบเต็มไปยังไฟล์


1

เพื่อส่งออกข้อมูลใน MySQL ผ่าน msdos คือ

สำรวจbinโฟลเดอร์ของmysqlไดเรกทอรีของคุณและค้นหาmysqldumpหรือวางไว้ในตัวแปรสภาพแวดล้อมเพื่อเข้าถึงได้จากทุกที่

  1. หากผู้ใช้รูทโดยไม่มีรหัสผ่าน

mysqldump -uroot -p mydb > backup.sql

  1. หากชื่อผู้ใช้และรหัสผ่าน

mysqldump -u <username> -p <password> <databasename> > backup.sql

(ระบุชื่อผู้ใช้และรหัสผ่านและ dbname)


ฉันใช้ MySQL บน Windows แต่c:\>where *mysqldump*บอกว่ามันไม่มีอยู่จริง
Peter Krauss

0

ผู้ใช้ mysql -u ฐานข้อมูล -p <backup.sql


0

ติดตั้ง HeidiSQl มันวิธีง่ายๆในการส่งออกไฟล์ Mysql นอกจากนี้ยังเป็นตัวแก้ไข SQL


0

หากคุณต้องการส่งออกฐานข้อมูลทั้งหมดให้ใช้สิ่งนี้:

set path=c:/wamp/bin/mysql/mysql5.5.24/bin/
mysqldump -u root -p --all-databases > exported_dbs.sql 

มันทำงานให้ฉันใน windows

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