Tôi có tệp .sql
với bản xuất từ phpMyAdmin
. Tôi muốn nhập nó vào một máy chủ khác bằng dòng lệnh.
Tôi có cài đặt Windows Server 2008 R2. Tôi đã đặt tệp .sql
trên ổ C và tôi đã thử lệnh này
database_name < file.sql
Nó không hoạt động tôi nhận được lỗi cú pháp.
Thử:
mysql -u username -p database_name < file.sql
Kiểm tra Tùy chọn MySQL .
Lưu ý-1 : Tốt hơn là sử dụng đường dẫn đầy đủ của tệp SQL file.sql
.
Lưu ý-2 : Sử dụng -R
và --triggers
để giữ các thói quen và kích hoạt cơ sở dữ liệu gốc. Chúng không được sao chép theo mặc định.
Lưu ý-3 Bạn có thể phải tạo cơ sở dữ liệu (trống) từ mysql nếu nó chưa tồn tại và SQL đã xuất không chứa CREATE DATABASE
(xuất với tùy chọn --no-create-db
hoặc -n
) nó.
Việc sử dụng phổ biến của mysqldump là để tạo bản sao lưu toàn bộ cơ sở dữ liệu:
Shell> mysqldump db_name > backup-file.sql
Bạn có thể tải tệp kết xuất trở lại máy chủ như thế này:
UNIX
Shell> mysql db_name < backup-file.sql
Tương tự trong lệnh Windows Nhắc:
mysql -p -u [user] [database] < backup-file.sql
PowerShell
C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"
Dòng lệnh MySQL
mysql> use db_name;
mysql> source backup-file.sql;
Về thời gian để nhập các tệp lớn: quan trọng nhất là mất nhiều thời gian hơn vì cài đặt mặc định của MySQL là autocommit = true
. Bạn phải tắt nó trước khi nhập tệp của mình và sau đó kiểm tra cách nhập hoạt động như một viên ngọc.
Bạn chỉ cần làm những điều sau đây:
mysql> use db_name;
mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
Trong số tất cả các câu trả lời, cho vấn đề trên, đây là câu trả lời hay nhất:
mysql> use db_name;
mysql> source file_name.sql;
Chúng ta có thể sử dụng lệnh này để nhập SQL từ dòng lệnh:
mysql -u username -p password db_name < file.sql
Ví dụ: nếu tên người dùng là root
và mật khẩu là password
. Và bạn có tên cơ sở dữ liệu là bank
và tệp SQL là bank.sql
. Sau đó, chỉ cần làm như thế này:
mysql -u root -p password bank < bank.sql
Hãy nhớ nơi tập tin SQL của bạn. Nếu tệp SQL của bạn nằm trong thư mục/thư mục Desktop
thì hãy vào thư mục máy tính để bàn và nhập lệnh như sau:
~ ? cd Desktop
~/Desktop ? mysql -u root -p password bank < bank.sql
Và nếu bạn đang ở trong thư mục Project
và tệp SQL của bạn nằm trong thư mục Desktop
. Nếu bạn muốn truy cập nó từ thư mục Project
thì bạn có thể làm như thế này:
~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
bin
của máy chủ mysql.source databasefilename.sql
và EnterNếu bạn đã có cơ sở dữ liệu, hãy sử dụng cách sau để nhập tệp dump
hoặc tệp sql
mysql -u username -p database_name < file.sql
nếu bạn không cần phải tạo cơ sở dữ liệu có liên quan (trống) trong MySQL, thì lần đầu tiên đăng nhập vào bảng điều khiển MySQL
bằng cách chạy lệnh sau trong terminal hoặc trong cmd
mysql -u userName -p;
và khi được nhắc cung cấp mật khẩu.
Tiếp theo tạo một cơ sở dữ liệu và sử dụng nó
mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;
Sau đó nhập tệp sql
hoặc tệp dump
vào cơ sở dữ liệu từ
mysql> source pathToYourSQLFile;
Lưu ý: nếu thiết bị đầu cuối của bạn không ở vị trí tồn tại tệp dump
hoặc sql
, hãy sử dụng đường dẫn tương đối ở trên.
Một giải pháp hiệu quả với tôi là dưới đây:
Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
Chuyển đến thư mục nơi bạn có thể thực thi MySQL. -u
cho tên người dùng và -p
để Nhắc mật khẩu:
C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
Để nhập một cơ sở dữ liệu, sử dụng lệnh sau.
mysql -u username -p password dbname < dump.sql
Để nhập nhiều bãi chứa cơ sở dữ liệu, sử dụng lệnh sau.
mysql -u username -p password < dump.sql
Tôi nghĩ rằng điều đáng nói là bạn cũng có thể tải tệp gzipped (đã nén) với zcat
như hiển thị bên dưới:
zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
Để kết xuất cơ sở dữ liệu vào tệp SQL, sử dụng lệnh sau
mysqldump -u username -p database_name > database_name.sql
Để nhập tệp SQL vào cơ sở dữ liệu (đảm bảo bạn đang ở cùng thư mục với tệp SQL hoặc cung cấp đường dẫn đầy đủ đến tệp)
mysql -u username -p database_name < database_name.sql
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
Cách dễ nhất để nhập vào lược đồ của bạn:
Đăng nhập vào mysql và phát hành các lệnh dưới đây.
mysql> use your_db_name;
mysql> source /opt/file.sql;
Để nhập nhiều tệp SQL cùng một lúc, hãy sử dụng:
# Unix-based solution
for i in *.sql;do mysql -u root -pPassword DataBase < $i;done
Để nhập đơn giản:
# Unix-based solution
mysql -u root -pPassword DataBase < data.sql
Dành cho ƯỚT :
#mysqlVersion replace with your own version
C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql
Đối với XAMPP:
C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql
Bạn không cần chỉ định tên của cơ sở dữ liệu trên dòng lệnh nếu tệp .sql chứa các câu lệnh CREATE DATABASE IF NOT EXISTS db_name
và USE db_name
.
Chỉ cần đảm bảo rằng bạn đang kết nối với người dùng có quyền tạo cơ sở dữ liệu, nếu cơ sở dữ liệu được đề cập trong tệp .sql không tồn tại.
Đi đến ổ đĩa:
command: d:
Đăng nhập MySQL
command: c:\xampp\mysql\bin\mysql -u root -p
Nó sẽ yêu cầu pwd. Nhập nó:
pwd
Chọn cơ sở dữ liệu
use DbName;
Cung cấp tên tệp
\.DbName.sql
Thêm tùy chọn --force
:
mysql -u username -p database_name --force < file.sql
Chuyển đến thư mục mà bạn có MySQL.
c:\mysql\bin\> mysql -u username -p password database_name <
filename.sql
Ngoài ra để kết xuất tất cả các cơ sở dữ liệu, hãy sử dụng tùy chọn -all-databases
và không cần chỉ định tên cơ sở dữ liệu nữa.
mysqldump -u username -ppassword –all-databases > dump.sql
Hoặc bạn có thể sử dụng một số máy khách GUI như SQLyog để làm điều này.
Lệnh sau hoạt động với tôi từ dòng lệnh (cmd) trên Windows 7 trên WAMP .
d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
Tôi nghĩ rằng nó có thể hữu ích cho những người đang sử dụng Mac OS X :
/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql
Thay thế xampp
bằng mamp
hoặc các máy chủ web khác.
Trong khi hầu hết các câu trả lời ở đây chỉ đề cập đến lệnh đơn giản
mysql -u cơ sở dữ liệu_user -p [db_name] <cơ sở dữ liệu_file.sql
ngày nay khá phổ biến là cơ sở dữ liệu và bảng có đối chiếu utf8 trong đó lệnh này không đủ . Có đối chiếu utf8 trong các bảng đã xuất, cần phải sử dụng lệnh này:
mysql -u cơ sở dữ liệu_user -p --default-character-set = utf8 [db_name] <database_file.sql
Surley này cũng hoạt động cho các bộ ký tự khác, làm thế nào để hiển thị ký hiệu đúng có thể được nhìn thấy ở đây:
Một bình luận cũng đề cập rằng nếu cơ sở dữ liệu không bao giờ tồn tại thì cơ sở dữ liệu trống phải được tạo trước tiên. Điều này có thể đúng trong một số trường hợp, nhưng phụ thuộc vào tệp xuất. Nếu tệp đã xuất đã bao gồm lệnh tạo cơ sở dữ liệu thì cơ sở dữ liệu không bao giờ phải được tạo trong một bước riêng biệt, thậm chí có thể gây ra lỗi khi nhập. Vì vậy, khi nhập, bạn nên xem trước trong tệp để biết các lệnh được đưa vào đó, khi xuất, bạn nên lưu ý các cài đặt, đặc biệt nếu tệp rất lớn và khó đọc trong trình chỉnh sửa.
Vẫn còn nhiều tham số cho lệnh được liệt kê và giải thích ở đây:
https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html
Nếu bạn sử dụng phiên bản cơ sở dữ liệu khác, hãy cân nhắc tìm kiếm phiên bản tương ứng của hướng dẫn sử dụng. Các liên kết được đề cập đề cập đến phiên bản MySQL 5.7.
mysql -u root -p password -D database_name << import.sql
Sử dụng trợ giúp mysql để biết chi tiết mysql --help
Tôi nghĩ rằng đây sẽ là những lựa chọn hữu ích trong bối cảnh của chúng tôi
[~]$ 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.
có gì vui, nếu chúng ta đang nhập một cơ sở dữ liệu lớn và không có thanh tiến trình. Sử dụng Trình xem ống và xem truyền dữ liệu qua đường ống
Đối với Mac, brew install pv
. Đối với Debian/Ubuntu, apt-get install pv
. Những người khác, hãy tham khảo http://www.ivarch.com/programs/pv.shtml
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
Đôi khi cổng được xác định cũng như máy chủ địa chỉ IP của cơ sở dữ liệu đó cũng có vấn đề ...
mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql
Tôi tiếp tục gặp vấn đề trong đó cơ sở dữ liệu không được tạo.
Tôi đã sửa nó như thế này
mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
Đối với mục đích sao lưu, tạo tệp BAT và chạy tệp BAT này bằng cách sử dụng Trình lập lịch tác vụ . Nó sẽ sao lưu cơ sở dữ liệu; chỉ cần sao chép dòng sau và dán vào Notepad và sau đó lưu tệp .bat và chạy nó trên hệ thống của bạn.
@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
Tương tự như https://stackoverflow.com/a/17666285/1888983
Sự khác biệt chính đối với tôi:
-p
và mật khẩuShell> mysql -u root -ppassword #note: no space between -p and password
mysql> CREATE DATABASE databasename;
mysql> using databasename;
mysql> source /path/to/backup.sql
Chạy Fedora 26 với MariaDB.
Để biết thông tin tôi chỉ có root + withoutpassword mặc định, nó không hoạt động với tất cả các câu trả lời ở trên.
Tôi đã tạo một người dùng mới với tất cả các đặc quyền và mật khẩu. Nó hoạt động.
-ppassword KHÔNG CÓ KHÔNG GIAN.
Tôi đang sử dụng Windows 10 với Powershell 5 và tôi thấy hầu hết các giải pháp "giống như unix" không hoạt động với tôi.
> mysql -u[username] [database-name] < my-database.sql
At line:1 char:31
+ mysql -u[username] [database-name] < my-database.sql
+ ~
The '<' operator is reserved for future use.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported
Tôi kết thúc bằng cách sử dụng lệnh này.
> type my-database.sql | mysql -u[username] -h[localhost] -p [database-name]
và nó hoạt động hoàn hảo, hy vọng nó sẽ giúp.
Cảm ơn @ Francesco Casula 's trả lời btw.
Các bước sau đây để tải lên file.sql
vào cơ sở dữ liệu MySQL.
Bước 1: Tải lên file.sql.Zip
vào bất kỳ thư mục nào và giải nén tại đó
Lưu ý : Sudo apt-get install unzip
: Sudo apt-get unzip file.sql.Zip
Bước 2: Bây giờ điều hướng đến thư mục đó. Ví dụ: cd /var/www/html
Bước 3: mysql -u username -p database-name < file.sql
Nhập mật khẩu và đợi cho đến khi tải lên hoàn tất.
Cung cấp thông tin đăng nhập trên dòng lệnh không phải là một ý tưởng tốt. Các câu trả lời trên là tuyệt vời, nhưng bỏ qua đề cập đến
mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql
Trong đó, v.v. Đây là một mẫu,
[client]
Host=hostname.domainname
user=dbusername
password=dbpassword
Nhập vào cơ sở dữ liệu: -
mysql -u tên người dùng -p cơ sở dữ liệu </ đường dẫn tệp/file_name.sql
Xuất từ cơ sở dữ liệu: -
mysqldump -u tên người dùng -p cơ sở dữ liệu_name>/đường dẫn tệp/file_name.sql
sau những lệnh này, Prompt sẽ hỏi mật khẩu mysql của bạn
Nếu nhập dữ liệu vào bộ chứa docker, hãy sử dụng lệnh sau. Điều chỉnh người dùng (-u), cơ sở dữ liệu (-D), cổng (-P) và Máy chủ (-h) để phù hợp với cấu hình của bạn.
mysql -u root -D database_name -P 4406 -h localhost --protocol=tcp -p < sample_dump.sql
Nếu bạn đang sử dụng MAMP trên Mac OS X, điều này có thể hữu ích:
/applications/MAMP/library/bin/mysql -u MYSQL_USER -p DATABASE_NAME < path/to/database_sql/FILE.sql
MYSQL_USER là root theo mặc định.
Xuất cơ sở dữ liệu cụ thể:
djimi:> mysqldump --user=root --Host=localhost --port=3306 --password=test -B CCR KIT > ccr_kit_local.sql
Điều này sẽ xuất cơ sở dữ liệu CCR và KIT ...
Nhập tất cả các cơ sở dữ liệu đã xuất sang một phiên bản MySQL cụ thể (bạn phải ở nơi tệp kết xuất của bạn):
djimi:> mysql --user=root --Host=localhost --port=3306 --password=test < ccr_kit_local.sql
Trong Ubunt
mysql -u root -p
CREATE database dbname;
use dbname;
source /home/computername/Downloads/merchantapp.sql
exit;
Trong Windows
Tải xuống tệp SQL và lưu nó trong C:\xampp\mysql\bin
.
Sau đó, mở lệnh Nhắc với C:\xampp\mysql\bin
:
C:\xampp\mysql\bin> mysql -u username -p database_name < file.sql
Để nhập cơ sở dữ liệu qua thiết bị đầu cuối
Điều hướng đến thư mục chứa tập tin sql
lệnh chạy bên dưới
mysql -u database_user_name -p database_name < sql_file_name.sql
Nó sẽ hỏi mật khẩu. nhập mật khẩu cơ sở dữ liệu. Sẽ mất vài giây để nhập dữ liệu trong cơ sở dữ liệu.
Ví dụ
Tôi đã cài đặt phần mềm trên C:\xampp\mysql\bin
Và tệp của tôi ở địa chỉ C:\Users\file.sql
Chỉ cần đặt username
và database_name
Lưu ý: Trước tiên, bạn cần tạo cơ sở dữ liệu (database_name
) theo cách thủ công
Chạy lệnh này:
cd C:\xampp\mysql\bin && mysql -u username -p database_name < C:\Users\file.sql
Và sau đó nhập mật khẩu ????
Nếu thư mục của bạn có nhiều tệp SQL và bạn đã cài đặt Git Bash bạn có thể sử dụng lệnh này để nhập nhiều tệp:
cd /my-project/data
cat *.sql | /c/xampp/mysql/bin/mysql -u root -p 1234 myProjectDbName
Từ cửa sổ, bạn có thể sử dụng lệnh bên dưới để nhập dữ liệu từ kết xuất sql
C:\Tệp chương trình\MySQL\MySQL Server 5.7\bin> mysql -u <> -p <> DBName <filelocation\query.sql
trong đó -u theo sau là tên người dùng và -p theo sau là mật khẩu Mysql. Mật khẩu có thể được bỏ qua trong lệnh vì nó có thể được nhập vào Nhắc.
Bạn có thể thử truy vấn này.
Xuất khẩu: Mysqldump -u tên người dùng Mạnh-password = your_password cơ sở dữ liệu
Nhập: Mysql -u tên người dùng mật khẩu-password = your_password database_name <file.sql
và chi tiết theo liên kết này:
1) Chuyển đến thư mục wamp hoặc xampp của bạn Ví dụ
cd d: /wamp/bin/mysql/mysql5.7.24/bin
2) mysql -u root -p DATABASENAME <PATHYOUDATABASE_FILE
Nếu bạn đang nhập vào máy chủ cơ sở dữ liệu cục bộ của mình, bạn có thể thực hiện các thao tác sau:
mysql -u database_user -p < database_file.sql
Đối với máy chủ cơ sở dữ liệu từ xa làm follwing:
mysql -u database_user -p -h remote_server_url < database_file.sql
Thử đi:-
C:\xampp\mysql\bin>mysql -u root -p database_name --force < C:\file.sql
Bạn có thể dùng:
mysql -u<user> -p<pass> <db> < db.sql
thí dụ:
mysql -uroot -proot db < db.sql
tạm biệt!