如何在MySQL中使用命令行导入SQL文件?
我有一个从phpMyAdmin导出的.sql文件。 我想使用命令行将其导入到不同的服务器。 
 我有一个Windows Server 2008 R2安装。 我将.sql文件放在C盘上,然后我尝试了这个命令 
 database_name < file.sql 
它不工作我得到语法错误。
- 我怎样才能导入这个文件没有问题?
 - 我需要先创build一个数据库吗?
 
尝试:
 mysql -u username -p database_name < file.sql 
检查MySQL选项 。
 注意:最好使用SQL文件file.sql的完整path。 
mysqldump的常见用法是对整个数据库进行备份:
 shell> mysqldump db_name > backup-file.sql 
您可以像这样将转储文件加载回服务器:
UNIX
 shell> mysql db_name < backup-file.sql 
在Windows命令提示符下也是一样的:
 mysql -p -u[user] [database] < backup-file.sql 
电源shell
 C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql" 
MySQL命令行
 mysql> use db_name; mysql> source backup-file.sql; 
 关于导入大文件所花费的时间:最重要的是,由于MySQL的默认设置是autocommit = true ,所以需要更多的时间。 在导入文件之前,您必须先将其设置为off,然后检查import如何像gem一样工作。 
你只需要做以下事情:
 mysql> use db_name; mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ; 
- 打开MySQL命令行
 - input mysql bin目录的path,然后按Enter键
 -  将你的SQL文件粘贴到mysql服务器的
bin文件夹中。 - 在MySQL中创build一个数据库。
 - 在要导入SQL文件的位置使用该特定的数据库。
 -   input 
source databasefilename.sql和Enter - 您的SQL文件成功上传。
 
我们可以使用这个命令从命令行导入SQL:
 mysql -u username -p password db_name < file.sql 
 例如,如果用户名是root ,密码是password 。 你有一个数据库名称为bank和SQL文件是bank.sql 。 然后,只需要这样做: 
 mysql -u root -p password bank < bank.sql 
 记住你的SQL文件的位置。 如果您的SQL文件位于Desktop文件夹/目录中,则进入桌面目录并input如下所示的命令: 
 ~ ? cd Desktop ~/Desktop ? mysql -u root -p password bank < bank.sql 
 如果您在Project目录中,并且您的SQL文件位于Desktop目录中。 如果你想从Project目录访问它,那么你可以这样做: 
 ~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql 
在所有的答案中,对于上面的问题,这是最好的一个:
  mysql> use db_name; mysql> source file_name.sql; 
为我工作的解决scheme如下:
 Use your_database_name; SOURCE path_to_db_sql_file_on_your_local; 
 转到您拥有MySQL可执行文件的目录。  -u用户名和-p提示input密码: 
 C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql 
要将数据库转储到SQL文件,请使用以下命令
 mysqldump -u username -p database_name > database_name.sql 
要将SQL文件导入数据库(确保与SQL文件位于同一目录中,或提供文件的完整path)
 mysql u -username -p database_name < database_name.sql 
要导入单个数据库,请使用以下命令。
 mysql -u username -p password dbname < dump.sql 
对于多个数据库转储,请使用以下命令。
 mysql -u username -p password < dump.sql 
 如果您已经有数据库使用以下来导入dump或sql文件 
 mysql -u username -p database_name < file.sql 
 如果你不需要在MySQL中创build相关的数据库(空),那么首先在terminal或cmd中运行以下命令login到MySQL控制台 
 mysql -u userName -p; 
并在提示时提供密码。
接下来创build一个数据库并使用它
 mysql>create database yourDatabaseName; mysql>use yourDatabaseName; 
 然后将sql或dump文件从数据库导入 
 mysql> source pathToYourSQLFile; 
 注意:如果您的terminal不在dump或sql文件所在的位置,请使用上面的相对path。 
 mysql --user=[user] --password=[password] [database] < news_ml_all.sql 
 我认为值得一提的是,你也可以像下面显示的那样用zcat加载一个gzipped(压缩)文件: 
 zcat database_file.sql.gz | mysql -u username -p -h localhost database_name 
 如果.sql文件包含CREATE DATABASE IF NOT EXISTS db_name和USE db_name语句,则不需要在命令行上指定数据库的名称。 
如果.sql文件中提到的数据库不存在,只要确保您正在连接具有创build数据库权限的用户。
要一次导入多个SQL文件,请使用以下命令:
 #Unix-based solution for i in *.sql;do mysql -u root -pPassword DataBase < $i;done 
为了简单导入:
 #Unix Based solution mysql -u root -pPassword DataBase < data.sql 
对于WAMP :
 #mysqlVersion replace with your own version C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql 
为Xamppp
 C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql 
 添加--force选项 : 
 mysql -u username -p database_name --force < file.sql 
我认为这对于那些使用Mac OS X的人可能是有用的:
 /Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql 
 用mamp或其他Web服务器replacexampp 。 
以下命令适用于WAMP上Windows 7的命令行(cmd)。
 d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql 
导入一个数据库
- 
去驱动器:
command: d: - 
MySQLlogin
command: c:\xampp\mysql\bin\mysql -u root -p - 
它会要求密码。 input:
pwd - 
select数据库
use DbName; - 
提供文件名称
\.DbName.sql 
转到你有MySQL的目录。
  c:\mysql\bin\> mysql -u username -p password database_name < filename.sql 
 还要转储所有数据库,使用-all-databases选项,并且不再需要指定数据库的名称。 
 mysqldump -u username -ppassword –all-databases > dump.sql 
或者你也可以使用一些像SQLyog这样的GUI客户端来做到这一点。
为了备份目的,创build一个BAT文件并使用任务计划程序运行此BAT文件。 它将采取数据库的备份; 只需将以下行复制并粘贴到记事本中 ,然后保存.bat文件,然后在系统上运行它。
 @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 
有关信息,我只是默认的根+没有密码,它不适用于所有以上的答案。
- 
我创build了一个拥有所有权限和密码的新用户。 有用。
 - 
-password无空格。
 
有时定义的端口以及该数据库的服务器IP地址也很重要。
 mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql 
我一直在遇到没有创build数据库的问题。
我这样解决
 mysql -u root -e "CREATE DATABASE db_name" mysql db_name --force < import_script.sql 
我正在使用Windows 10与Powershell 5,我发现几乎所有“unix-like”解决scheme都不适合我。
 > 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 
我最终使用这个命令。
 > type my-database.sql | mysql -u[username] -h[localhost] -p [database-name] 
它完美的工作,希望它可以帮助。
感谢@ Francesco Casula的答案 。
 以下步骤有助于将file.sql上传到MySQL数据库。 
 步骤1:将file.sql.zip上传到任何目录并在其中解压缩 
  注意 : sudo apt-get install unzip : sudo apt-get unzip file.sql.zip 
 第2步:现在导航到该目录。 例如: cd /var/www/html 
 第3步: mysql -u username -p database-name < file.sql 
 input密码并等待上传完成。 
如果你的文件夹有多个SQL文件,并且你已经安装了Git Bash,你可以使用这个命令来导入多个文件:
 cd /my-project/data cat *.sql | /c/xampp/mysql/bin/mysql -u root -p 1234 myProjectDbName 
在命令行上提供凭据不是一个好主意。 上面的答案很好,但是忽略了
 mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql 
其中etc / myhost.cnf是一个包含主机,用户,密码的文件,您可以避免在命令行上显示密码。 这里是一个示例,
 [client] host=hostname.domainname user=dbusername password=dbpassword 
 与https://stackoverflow.com/a/17666285/1888983类似; 
 对我来说重要的区别: 
- 数据库必须先存在
 -   
-p和密码之间没有空格 
 shell> mysql -u root -ppassword #note: no space between -p and password mysql> CREATE DATABASE databasename; mysql> using databasename; mysql> source /path/to/backup.sql 
用MariaDB运行fedora 26。
如果您在Mac OS X上使用MAMP ,可能会有帮助:
 /applications/MAMP/library/bin/mysql -u MYSQL_USER -p DATABASE_NAME < path/to/database_sql/FILE.sql 
MYSQL_USER默认为root。