Tôi có một cơ sở dữ liệu khá lớn nên tôi muốn xuất nó bằng Command Prompt nhưng tôi không biết làm thế nào.
Tôi đang sử dụng WAMP.
Tôi có một cơ sở dữ liệu khá lớn nên tôi muốn xuất nó bằng Command Prompt nhưng tôi không biết làm thế nào.
Tôi đang sử dụng WAMP.
Câu trả lời:
Trước tiên hãy kiểm tra xem dòng lệnh của bạn có nhận ra lệnh mysql không. Nếu không đi đến lệnh & gõ vào:
set path=c:\wamp\bin\mysql\mysql5.1.36\bin
Sau đó sử dụng lệnh này để xuất cơ sở dữ liệu của bạn:
mysqldump -u YourUser -p YourDatabaseName > wantedsqlfile.sql
Sau đó, bạn sẽ được nhắc nhập mật khẩu cơ sở dữ liệu .
Thao tác này xuất cơ sở dữ liệu sang đường dẫn bạn hiện đang sử dụng, trong khi thực hiện lệnh này
Lưu ý: Dưới đây là một số hướng dẫn chi tiết về cả nhập và xuất
-p
và thepassword
.
-p
và sau đó sẽ được nhắc nhập mật khẩu. Bằng cách này bạn tránh phải mật khẩu của bạn được lưu ví dụ trong.bash_history
Chỉ cần sử dụng lệnh sau đây,
Để xuất khẩu:
mysqldump -u [user] -p [db_name] | gzip > [filename_to_compress.sql.gz]
Đối với nhập khẩu:
gunzip < [compressed_filename.sql.gz] | mysql -u [user] -p[password] [databasename]
Lưu ý: Không có khoảng cách giữa từ khóa '-p' và mật khẩu của bạn.
gzip -9
làm cho tệp kết quả nhỏ hơn một chút, vì nén tối đa được sử dụng.
Trước hết, nhắc lệnh mở sau đó mở thư mục bin trong cmd (tôi hy vọng bạn biết với các lệnh cmd ) đi đến thư mục bin của thư mục MySql của bạn trong các tệp chương trình WAMP .
chạy lệnh
mysqldump -u db_username -p database_name > path_where_to_save_sql_file
nhấn enter hệ thống sẽ xuất cơ sở dữ liệu cụ thể và tạo tập tin sql đến vị trí nhất định.
tôi hy vọng bạn hiểu nó :) nếu bạn có bất kỳ câu hỏi nào xin vui lòng cho tôi biết.
Vâng, bạn có thể sử dụng lệnh dưới đây,
mysqldump --databases --user=root --password your_db_name > export_into_db.sql
và tệp được tạo sẽ có sẵn trong cùng thư mục mà bạn đã chạy lệnh này.
Bạn có thể tìm thêm về tài liệu tham khảo chính thức cho mysqldump
: Nhập xuất MySQL DB
Lưu ý : sử dụng --databases
thay vì --database
kể từ lần cuối không còn được hỗ trợ.
Thưởng thức :)
mysqldump: [ERROR] unknown option '--database'
nhưng loại trừ --database
nó đã làm việc.
Đi đến dấu nhắc lệnh tại đường dẫn này,
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>
Sau đó đưa ra lệnh này để xuất cơ sở dữ liệu của bạn ( không có khoảng trắng sau -p )
mysqldump -u[username] -p[userpassword] yourdatabase > [filepath]wantedsqlfile.sql
Xác định vị trí cá thể mysql của bạn với:
which mysql
Nếu điều này là chính xác thì hãy xuất với mục sau (khác điều hướng đến phiên bản mysql trong thư mục mamp của bạn trong bin):
mysqldump -u [username] -p [password] [dbname] > filename.sql
Và nếu bạn muốn nén nó vào thời điểm đó:
mysqldump -u [username] -p [password] [db] | gzip > filename.sql.gz
Sau đó, bạn có thể di chuyển tệp này giữa các máy chủ với:
scp user@xxx.xxx.xxx.xxx:/path_to_your_dump/filename.sql.gz your_detination_path/
(trong đó xxx.xxx.xxx.xxx là địa chỉ IP của máy chủ)
Và sau đó nhập nó với:
gunzip filename.sql.gz | mysql -u [user] -p [password] [database]
password
khỏi dòng lệnh: mysqldump -u [tên người dùng] -p [dbname]> filename.sql Điều này ngăn mọi người tìm kiếm lịch sử của bạn để tìm mật khẩu.
mysqldump -u tutorials -p'mypassword' -h 127.0.0.1 database_name > file_backup_database_name_.sql
Cảnh báo: Sử dụng mật khẩu trên giao diện dòng lệnh có thể không an toàn.
Để xuất PROCEDURE, FUNCTION & TRIGGER cũng vậy, thêm --routines
tham số:
mysqldump -u YourUser -p YourDatabaseName --routines > wantedsqlfile.sql
--routines
tạo ra sự khác biệt :) Bất kỳ gợi ý nào về cách chỉ xuất các THỦ TỤC, CHỨC NĂNG & TRIGGER? Dành cho những người đã quên công tắc và xuất DB "thuần túy" mà không có "thuật toán" :)
--events
cần có công tắc để kết xuất các sự kiện Trình lập lịch sự kiện và TRIGGER luôn được xuất trừ khi --skip-triggers
được chỉ định (theo 7.4.5.3 Các chương trình lưu trữ bị
Đưa ra lệnh này để xuất cơ sở dữ liệu của bạn, điều này cũng sẽ bao gồm ngày
mysqldump -u[username] -p[userpassword] --databases yourdatabase | gzip > /home/pi/database_backup/database_`date '+%m-%d-%Y'`.sql.gz
(không có khoảng trắng sau -p)
--databases
sẽ chèn các câu lệnh CREATE DATABASE XYZ;
và USE XYZ;
, không hữu ích khi nhập SQL vào một DB khác với tên khác ...
Tôi đã cài đặt máy chủ wamp của mình trong ổ D: vì vậy bạn phải đi đến đường dẫn sau từ dòng lệnh ur -> (và nếu bạn đã cài đặt ur wamp trong c: drive thì chỉ cần thay thế d: wtih c: tại đây)
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"
Ở đây root là người dùng mật khẩu phpmyadmin của tôi là mật khẩu cho phpmyadmin, vì vậy nếu bạn chưa đặt bất kỳ mật khẩu nào cho root thì không có gì ở đó, db_name là cơ sở dữ liệu (mà cơ sở dữ liệu của bạn đang sao lưu), backupfile.sql là tệp trong đó bạn muốn sao lưu cơ sở dữ liệu của bạn và bạn cũng có thể thay đổi vị trí tệp sao lưu (d: \ backupfile.sql) từ bất kỳ nơi nào khác trên máy tính của bạn
-p
và password
?
mysqldump -h [host] -p -u [user] [database name] > filename.sql
Ví dụ trong localhost
mysqldump -h localhost -p -u root cookbook > cookbook.sql
Vấn đề với tất cả các giải pháp này (sử dụng >
ký tự chuyển hướng) là bạn viết kết xuất của bạn từ thiết bị xuất chuẩn có thể phá vỡ mã hóa của một số ký tự trong cơ sở dữ liệu của bạn.
Nếu bạn có một vấn đề mã hóa ký tự. Nhu la :
LRI 1064 (42000): Bạn có lỗi trong cú pháp SQL của mình; kiểm tra hướng dẫn tương ứng với phiên bản máy chủ MySQL của bạn để biết đúng cú pháp sử dụng gần ...
sau đó, bạn PHẢI sử dụng -r
tùy chọn để ghi tệp.
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
Sử dụng 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
Lưu ý: điều này gắn kết đường dẫn hiện tại dưới dạng kết xuất bên trong thể hiện.
Chúng tôi tìm thấy câu trả lời ở đây
Ngược lại, không sử dụng <
để nhập kết xuất của bạn vào cơ sở dữ liệu của bạn, một lần nữa, các ký tự không phải là utf8 của bạn có thể không được thông qua; nhưng thích tùy chọn nguồn.
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
trong đó d: \ wamp \ bin \ mysql \ mysql5.6.12 \ bin \ mysqldump.exe sẽ là đường dẫn mysqldump.exe thực tế của bạn, mydbname là tên của cơ sở dữ liệu mà bạn muốn xuất và d: \ mydb.sql là đường dẫn trong đó bạn muốn lưu trữ cơ sở dữ liệu đã xuất.
Tôi đã sử dụng máy chủ wamp. Tôi đã thử
c:\wamp\bin\mysql\mysql5.5.8\bin\mysqldump -uroot -p db_name > c:\somefolder\filename.sql
root
là tên người dùng của tôi cho mysql và nếu bạn có bất kỳ mật khẩu nào, hãy chỉ định nó với:
-p[yourpassword]
Hy vọng nó hoạt động.
Đối với hệ điều hành windows :
Khi bạn gặp lỗi 1064 mysql (42000) trong khi cố gắng thực thi lệnh mysqldump , hãy thoát khỏi thiết bị đầu cuối hiện tại. Và thực hiện lệnh mysqldump.
mysql>exit
c:\xampp\mysql\bin>mysqldump -uroot -p --databases [database_name] > name_for_export_db.sql
Tôi đã cố gắng lấy bãi chứa db đang chạy trên docker và đưa ra lệnh dưới đây để đạt được điều tương tự:
docker exec <container_id/name>
/ usr / bin / mysqldump -u <db_username>
--password = <db_password>
db_name
> .sql
Hi vọng điêu nay co ich!
Bạn có thể sử dụng tập lệnh này để xuất hoặc nhập bất kỳ cơ sở dữ liệu nào từ thiết bị đầu cuối được cung cấp tại liên kết này: 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