ฉันมีฐานข้อมูลที่ค่อนข้างใหญ่ดังนั้นฉันต้องการส่งออกโดยใช้ Command Prompt แต่ไม่รู้วิธีการ
ฉันกำลังใช้ WAMP
ฉันมีฐานข้อมูลที่ค่อนข้างใหญ่ดังนั้นฉันต้องการส่งออกโดยใช้ Command Prompt แต่ไม่รู้วิธีการ
ฉันกำลังใช้ WAMP
คำตอบ:
ก่อนอื่นให้ตรวจสอบว่าบรรทัดคำสั่งของคุณรู้จักคำสั่ง mysql หรือไม่ หากไม่ไปที่คำสั่ง & พิมพ์ใน:
set path=c:\wamp\bin\mysql\mysql5.1.36\bin
จากนั้นใช้คำสั่งนี้เพื่อส่งออกฐานข้อมูลของคุณ:
mysqldump -u YourUser -p YourDatabaseName > wantedsqlfile.sql
แล้วคุณจะได้รับพร้อมท์สำหรับรหัสผ่านฐานข้อมูล
สิ่งนี้จะส่งออกฐานข้อมูลไปยังพา ธ ที่คุณอยู่ในขณะที่ดำเนินการคำสั่งนี้
หมายเหตุ: ต่อไปนี้เป็นคำแนะนำโดยละเอียดเกี่ยวกับการนำเข้าและส่งออก
-p
thepassword
-p
และจากนั้นจะได้รับพร้อมท์สำหรับรหัสผ่าน วิธีนี้คุณหลีกเลี่ยงการบันทึกรหัสผ่านของคุณเช่นใน.bash_history
เพียงใช้คำสั่งต่อไปนี้
เพื่อการส่งออก:
mysqldump -u [user] -p [db_name] | gzip > [filename_to_compress.sql.gz]
สำหรับการนำเข้า:
gunzip < [compressed_filename.sql.gz] | mysql -u [user] -p[password] [databasename]
หมายเหตุ:ไม่มีช่องว่างระหว่างคำหลัก '-p' และรหัสผ่านของคุณ
gzip -9
ทำให้ไฟล์ผลลัพธ์มีขนาดเล็กลงเล็กน้อยเนื่องจากมีการใช้การบีบอัดสูงสุด
ก่อนอื่นจากรับคำสั่ง open จากนั้นเปิดไดเรกทอรีbinในcmd (ฉันหวังว่าคุณจะรู้ด้วยคำสั่งcmd ) ไปที่ไดเรกทอรีbinของโฟลเดอร์ MySql ของคุณในไฟล์โปรแกรมWAMP
เรียกใช้คำสั่ง
mysqldump -u db_username -p database_name > path_where_to_save_sql_file
กด enter ระบบจะส่งออกฐานข้อมูลเฉพาะและสร้างไฟล์ sql ไปยังตำแหน่งที่กำหนด
ฉันหวังว่าคุณจะได้รับมัน :) หากคุณมีคำถามใด ๆ โปรดแจ้งให้เราทราบ
คุณสามารถใช้คำสั่งด้านล่าง
mysqldump --databases --user=root --password your_db_name > export_into_db.sql
และไฟล์ที่สร้างขึ้นจะมีอยู่ในไดเรกทอรีเดียวกันกับที่คุณเคยใช้คำสั่งนี้
คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับการอ้างอิงอย่างเป็นทางการสำหรับmysqldump
: นำเข้าส่งออกฐานข้อมูล MySQL
หมายเหตุ : ใช้--databases
แทนการใช้--database
ตั้งแต่ล่าสุดไม่รองรับ
สนุก :)
mysqldump: [ERROR] unknown option '--database'
แต่--database
ไม่สามารถใช้งานได้
ไปที่ command prompt ที่เส้นทางนี้
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>
จากนั้นให้คำสั่งนี้เพื่อส่งออกฐานข้อมูลของคุณ ( ไม่มีช่องว่างหลังจาก -p )
mysqldump -u[username] -p[userpassword] yourdatabase > [filepath]wantedsqlfile.sql
ค้นหาอินสแตนซ์ mysql ของคุณด้วย:
which mysql
หากสิ่งนี้ถูกต้องให้ส่งออกด้วยสิ่งต่อไปนี้ (ไม่เช่นนั้นไปที่อินสแตนซ์ mysql ในโฟลเดอร์ mamp ของคุณในถังขยะ)
mysqldump -u [username] -p [password] [dbname] > filename.sql
และถ้าคุณต้องการซิปมันในช่วงเวลา:
mysqldump -u [username] -p [password] [db] | gzip > filename.sql.gz
จากนั้นคุณสามารถย้ายไฟล์นี้ระหว่างเซิร์ฟเวอร์ด้วย:
scp user@xxx.xxx.xxx.xxx:/path_to_your_dump/filename.sql.gz your_detination_path/
(โดยที่ xxx.xxx.xxx.xxx เป็นที่อยู่ IP ของเซิร์ฟเวอร์)
จากนั้นนำเข้าด้วย:
gunzip filename.sql.gz | mysql -u [user] -p [password] [database]
password
ออกจากบรรทัดคำสั่ง: mysqldump -u [ชื่อผู้ใช้] -p [dbname]> filename.sql สิ่งนี้ช่วยป้องกันไม่ให้คนค้นหาประวัติของคุณสำหรับรหัสผ่าน
mysqldump -u tutorials -p'mypassword' -h 127.0.0.1 database_name > file_backup_database_name_.sql
คำเตือน: การใช้รหัสผ่านบนอินเตอร์เฟสบรรทัดคำสั่งอาจไม่ปลอดภัย
หากต้องการส่งออกขั้นตอนฟังก์ชัน FUNCTIONs & TRIGGER ก็เพิ่ม--routines
พารามิเตอร์:
mysqldump -u YourUser -p YourDatabaseName --routines > wantedsqlfile.sql
--routines
สร้างความแตกต่าง :) คำแนะนำใด ๆ เกี่ยวกับวิธีการส่งออกเฉพาะขั้นตอนฟังก์ชั่น & TRIGGERs? สำหรับผู้ที่ลืมเกี่ยวกับสวิตช์และส่งออก DB "บริสุทธิ์" โดยไม่ต้อง "อัลกอริทึม" :)
--events
เพื่อถ่ายโอนเหตุการณ์ตัวกำหนดเวลาเหตุการณ์และ TRIGGERs จะถูกส่งออกเสมอเว้นแต่--skip-triggers
จะมีการระบุไว้ (ตามข้อ 7.4.5.3 โปรแกรมการบันทึกการทุ่มตลาด )
ให้คำสั่งนี้เพื่อส่งออกฐานข้อมูลของคุณซึ่งจะรวมถึงวันที่ด้วย
mysqldump -u[username] -p[userpassword] --databases yourdatabase | gzip > /home/pi/database_backup/database_`date '+%m-%d-%Y'`.sql.gz
(ไม่มีช่องว่างหลังจาก -p)
--databases
จะแทรกคำสั่งเป็นCREATE DATABASE XYZ;
และUSE XYZ;
ซึ่งไม่สะดวกเมื่อนำเข้า SQL ไปยังอีกฐานข้อมูลหนึ่งที่มีชื่ออื่น ...
ฉันติดตั้งเซิร์ฟเวอร์ wamp ของฉันในไดรฟ์ D: ดังนั้นคุณต้องไปที่เส้นทางต่อไปนี้จากบรรทัดคำสั่ง ur -> (และถ้าหากคุณติดตั้ง wamp ur ใน c: ไดรฟ์แล้วให้แทนที่ d: wtih c: here)
D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button and select the currently working mysql version on your server if you have more than one mysql versions)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysqldump -u root -p password db_name > "d:\backupfile.sql"
นี่rootคือผู้ใช้รหัสผ่าน phpmyadmin ของฉัน คือรหัสผ่านสำหรับ phpmyadmin ดังนั้นหากคุณยังไม่ได้ตั้งรหัสผ่านใด ๆ สำหรับ root เพียงแค่ไม่มีประเภทในสถานที่นั้น db_name คือฐานข้อมูล (สำหรับฐานข้อมูลที่ใช้สำรองข้อมูล) backupfile.sql ไฟล์ที่คุณต้องการสำรองข้อมูล ur ของฐานข้อมูล ur และคุณสามารถเปลี่ยนตำแหน่งไฟล์สำรองข้อมูล (d: \ backupfile.sql) จากที่อื่นในคอมพิวเตอร์ของคุณ
-p
และpassword
?
mysqldump -h [host] -p -u [user] [database name] > filename.sql
ตัวอย่างใน localhost
mysqldump -h localhost -p -u root cookbook > cookbook.sql
ปัญหาเกี่ยวกับการแก้ไขปัญหาเหล่านี้ทั้งหมด (โดยใช้>
ตัวเปลี่ยนเส้นทาง) คือคุณเขียนการถ่ายโอนข้อมูลของคุณจาก stdout ซึ่งอาจทำให้การเข้ารหัสของอักขระบางตัวในฐานข้อมูลของคุณ
หากคุณมีปัญหาการเข้ารหัสตัวอักษร เช่น:
ข้อผิดพลาด 1064 (42000): คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ; ตรวจสอบคู่มือที่สอดคล้องกับรุ่นเซิร์ฟเวอร์ MySQL ของคุณสำหรับไวยากรณ์ที่ถูกต้องที่จะใช้ใกล้ ...
จากนั้นคุณต้องใช้-r
ตัวเลือกในการเขียนไฟล์
MySQL
mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump.sql
การใช้ Docker
docker exec --rm -v $pwd:dump -it mysql:5:7 mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump/dump.sql
หมายเหตุ: สิ่งนี้จะเมานต์พา ธ ปัจจุบันเป็นการดัมพ์ภายในอินสแตนซ์
เราพบคำตอบที่นี่
ในทางกลับกันอย่าใช้<
เพื่อนำเข้าดัมพ์ของคุณไปยังฐานข้อมูลอีกครั้งอักขระที่ไม่ใช่ utf8 ของคุณอาจไม่ถูกส่งผ่าน แต่ต้องการตัวเลือกแหล่งที่มา
mysql -u user -pYourPasswordYouNowKnowHow --default-character-set=utf8 your-database
mysql> SET names 'utf8'
mysql> SOURCE dump.sql
(mysqldump.exe full path) -u (user name) -p (password) (database name) > (export database file full path)
c:>d:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe -u root -p mydbname > d:\mydb.sql
โดยที่d: \ wamp \ bin \ mysql \ mysql5.6.12 \ bin \ mysqldump.exeจะเป็นเส้นทาง mysqldump.exe ที่แท้จริงของคุณmydbnameเป็นชื่อของฐานข้อมูลที่คุณต้องการส่งออกและd: \ mydb.sqlเป็นเส้นทางที่ คุณต้องการจัดเก็บฐานข้อมูลที่ส่งออก
ฉันใช้เซิร์ฟเวอร์ wamp ฉันพยายาม
c:\wamp\bin\mysql\mysql5.5.8\bin\mysqldump -uroot -p db_name > c:\somefolder\filename.sql
root
เป็นชื่อผู้ใช้ของฉันสำหรับ mysql และหากคุณมีรหัสผ่านให้ระบุด้วย:
-p[yourpassword]
หวังว่ามันจะใช้งานได้
สำหรับระบบปฏิบัติการ windows :
เมื่อคุณได้รับข้อผิดพลาด1064 mysql (42000)ขณะที่พยายามรันคำสั่งmysqldumpให้ออกจากเทอร์มินัลปัจจุบัน และรันคำสั่ง mysqldump
mysql>exit
c:\xampp\mysql\bin>mysqldump -uroot -p --databases [database_name] > name_for_export_db.sql
ฉันพยายามที่จะถ่ายโอนข้อมูลของฐานข้อมูลที่ทำงานบนนักเทียบท่าและมาพร้อมกับคำสั่งด้านล่างเพื่อให้บรรลุเดียวกัน:
นักเทียบท่า exec <container_id/name>
/ usr / bin / mysqldump -u <db_username>
--password = <db_password>
db_name
> .sql
หวังว่านี่จะช่วยได้!
คุณสามารถใช้สคริปต์นี้เพื่อส่งออกหรือนำเข้าฐานข้อมูลใด ๆ จากเทอร์มินัลที่ได้รับที่ลิงค์นี้: https://github.com/Ridhwanluthra/mysql_import_export_script/blob/master/mysql_import_export_script.sh
echo -e "Welcome to the import/export database utility\n"
echo -e "the default location of mysqldump file is: /opt/lampp/bin/mysqldump\n"
echo -e "the default location of mysql file is: /opt/lampp/bin/mysql\n"
read -p 'Would like you like to change the default location [y/n]: ' location_change
read -p "Please enter your username: " u_name
read -p 'Would you like to import or export a database: [import/export]: ' action
echo
mysqldump_location=/opt/lampp/bin/mysqldump
mysql_location=/opt/lampp/bin/mysql
if [ "$action" == "export" ]; then
if [ "$location_change" == "y" ]; then
read -p 'Give the location of mysqldump that you want to use: ' mysqldump_location
echo
else
echo -e "Using default location of mysqldump\n"
fi
read -p 'Give the name of database in which you would like to export: ' db_name
read -p 'Give the complete path of the .sql file in which you would like to export the database: ' sql_file
$mysqldump_location -u $u_name -p $db_name > $sql_file
elif [ "$action" == "import" ]; then
if [ "$location_change" == "y" ]; then
read -p 'Give the location of mysql that you want to use: ' mysql_location
echo
else
echo -e "Using default location of mysql\n"
fi
read -p 'Give the complete path of the .sql file you would like to import: ' sql_file
read -p 'Give the name of database in which to import this file: ' db_name
$mysql_location -u $u_name -p $db_name < $sql_file
else
echo "please select a valid command"
fi