我有一个叫nitm的数据库。我没有在那里创建任何表。但我有一个SQL文件,其中包含数据库所需的所有数据。文件为nitm.sql,位于C:\ drive中。此文件的大小约为103 MB。我正在使用wamp服务器。
我在MySQL控制台中使用了以下语法来导入文件:
但这不起作用。
- 请参阅stackoverflow.com/questions/17666249/…
- 查看stackoverflow.com/questions/11407349/…
从MySQL控制台:
mysql>use DATABASE_NAME;
mysql>source path/to/file.sql;
如果要引用相对路径,请确保路径前没有斜线…我花了一段时间才意识到这一点!大声笑
- 如果要进行相对引用,则不需要在路径前加斜线。如果你从根开始,你会的。
- 太可惜了,没办法给最爱的人加个答案:(
- 在Chrome中,它们被称为书签,您只需单击地址栏中的星号;)
- 你救了我的命:)谢谢!…这对我来说也是错误代码1406的解决方案。列的数据太长-mysql
- 阿森尼乌斯?Ozicki补充了这个问题,你就能找到答案了:)这就是我要做的。
- 谢谢你的回答,它比其他导入方式更容易记住。
- 除了这个答案之外,path/to/file.sql是mysql客户机所在的本地文件系统路径。有时候mysql服务器希望路径在服务器端,比如SELECT ... INTO OUTFILE将文件放到mysql服务器的路径中!
- 我发现相对路径就是调用mysql命令的地方。
- 当这样做的时候,有没有一种方法可以消除冗长的内容?
- 另外,不要忘记在上载后删除.sql文件。
- 我想知道source命令是否适用于其他mysql客户机,比如libmysqlclient和其他各种语言的嵌入式客户机。
最后,我解决了这个问题。我将"nitm.sql"文件放在"mysql"文件夹的"bin"文件中,并使用了以下语法。
1
| C:\wamp\ bin\mysql\mysql5.0.51b\bin >mysql -u root nitm < nitm.sql |
这很管用。
- 这不是来自于op所要求的mysql控制台,而是从一个控制台进入mysql。来自Robert Anthony Tribiana的答案确实描述了如何从MySQL控制台执行此操作。
- 这不是解决问题的确切方法,也不是解决方案。
- 你们知道这是谁回答的吗?
- 如果你的mysql需要密码,那么is方法不起作用,你需要@d-的最上面的答案
如果你用的是wamp,你可以试试这个。先输入use your_Database_name。
单击您的wamp服务器图标,然后查找MYSQL > MSQL Console,然后运行它。
如果您没有密码,只需按Enter并键入:
1 2
| mysql > use database_name ;
mysql > source location_of_your_file ; |
如果您有密码,您将提示输入密码。请先输入密码,然后键入:
1 2
| mysql > use database_name ;
mysql > source location_of_your_file ; |
location_of_your_file应该像C:\mydb.sql一样。
所以推荐使用mysql>source c:mydb.sql;
这种导入SQL转储对于大型SQL文件非常有用。
我把我的文件mydb.sq复制到目录C:中,应该是大写C:才能运行
就是这样。
- 谢谢,谢谢,谢谢
- 这个答案似乎是特定于wamp的,而显示的代码可以在任何运行mysql的环境中工作,您可以通过终端或控制台访问mysql。
在Windows中,如果上述建议给您一个错误(找不到文件或未知数据库),您可能需要将正斜杠加倍:
在mysql控制台中:
1 2 3
| mysql > use DATABASE_NAME ;
mysql > source C: //path //to//file.sql ; |
好吧,我正在使用Linux,但我认为这对Windows也是适用的。您可以直接从命令提示符执行此操作
1
| > mysql -u <user name > -p <password > <database name > < sqlfilename.sql |
或者在mysql提示下,可以使用:
1
| mysql>source sqlfilename.sql |
但这两种方法在显示的结果中都有各自的好处。在第一种方法中,脚本一遇到错误就退出。更好的是,它告诉您错误发生的源文件中的确切行号。但是,它只显示错误。如果没有遇到任何错误,脚本将不显示任何内容。这可能有点让人不安。因为你经常用一堆命令运行一个脚本。
现在,第二种方法(在mysql提示符内)的好处是,它为脚本中的每个不同mysql命令显示一条消息。如果遇到错误,它会显示MySQL错误消息,但会通过脚本继续。这可能很好,因为您可以在再次运行脚本之前返回并修复所有错误。缺点是它不会在遇到错误的脚本中显示行号。这可能有点疼。但是错误消息是描述性的,所以您可能会发现问题在哪里。
例如,我更喜欢直接从OS命令行方法。
如果您使用的是XAMPP
1
| C:\xampp\mysql\ bin\mysql -uroot -p nitm < nitm.sql |
你快到了使用
您也可以通过以下方式访问帮助:
- 这不管用。当我使用mysql的时候。c:/nitm.sql;,它引发错误,如打开文件"c:itm.sql;"失败,错误:2。
- 你试过这种变化吗?有些应用程序尊重c:itm.sql
- 还要注意结尾的分号不是必需的。所以删除它。另一个选项是"cd c:",然后尝试""。"SQL"
- 请在打字前想一想。cd c:'是DOS提示符的命令,而不是mysql控制台。
- mysql> \. ~/Downloads/backups/file.sql在mysql>中工作得很好,从终端coosal的答案也工作得很好。
用于XAMPP上的本地主机。打开一个命令窗口并键入
1 2
| cd C:\xampp\mysql\ bin
mysql.exe -u root -p |
注意!-P后无半结肠输入密码并键入
选择所需的数据库。
检查你的桌子是否在那里
从SQL文件导入
为了不与SQL文件的位置混淆,我将文件放在C:xamppmysqlin位置。
别忘了用
如果您的SQL文件是UTF-8:)
所以你需要做的是:
cmd.exe
mysql -u root
mysql> charset utf8
mysql> use mydbname
mysql> source C:\myfolder\myfile.sql
祝你好运)
在Linux中,我在启动mysql之前导航到了包含.sql文件的目录。系统光标现在与文件位于同一位置,您不需要路径。使用源mydata.sql,其中我的日期将替换为文件名。
1 2 3
| cd whatever directory
mysql - p |
连接TargetDB
多恩
尝试:
1
| mysql -u username -p database_name < file.sql |
检查mysql选项。
注意:最好使用SQL文件file.sql的完整路径。
从命令行(cmd.exe,而不是在mysql shell中)尝试如下操作:
1
| type c: /nite.sql | mysql -uuser -ppassword dbname |
- 我没有为数据库创建任何密码,所以密码字段中的密码为空。我使用了上面的语法,比如c:/nitm.sql mysql-u root-p nitm,但这也不起作用。你能再帮我一点吗?
- 那就省略-p。
- 省略-P也不起作用。这引发了类似"c:"的错误,无法识别为内部或外部命令、可操作程序或批处理文件。
您的转储是否包含您的MySQL版本不支持的功能?您还可以尝试删除开始(和结束)mysql注释集语句。
我不知道您的dump是否来自Linux版本的mysql(行尾)?
- 我已经删除了mysql注释的set语句。但是仍然会发生错误。
- 您可以尝试登录到mysql命令shell和use then语句:"source c:ite.sql"。不要忘记选择正确的数据库。
- 我非常感谢你的努力。谢谢。
我已经在d:drive中安装了我的wamp服务器,所以您必须从ur命令行中转到以下路径->(如果您已经在c:drive中安装了您的wamp,那么只需替换d:wtih c:here)
1 2 3 4 5 6
| 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 )
D:\wamp\ bin\mysql\mysql5.5.8 >cd bin
D:\wamp\ bin\mysql\mysql5.5.8\bin >mysql -u root -p password db_name <"d:\backupfile.sql" |
这里root是我的phpmyadmin的用户password是phpmyadmin的密码,因此如果您没有为根设置任何密码,那么在该位置只需输入nothing,数据库名称是数据库(为其备份数据库),backupfile.sql是您希望从中备份您的数据库的文件,您还可以将备份文件位置(d:ackupfile.sql)从计算机上的任何其他位置更改为
导出特定数据库
1
| djimi: > mysqldump --user=root --host =localhost --port =3306 --password=test -B CCR KIT >ccr_kit_local.sql |
这将导出CCR和KIT数据库…
将所有导出的数据库导入到特定的MySQL实例(必须是转储文件所在的位置)
1
| djimi: > mysql --user=root --host =localhost --port =3306 --password=test < ccr_kit_local.sql |
这会将mysql命令的输出写入'nitm.sql;'(应该做什么?';')假设您有原始文件的副本(在覆盖之前),那么:
- 这也不管用。它抛出了类似错误1064<42000>的错误:您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以获得在第1行"mysql
对于那些努力完成这项任务的人来说,试着从中找到每一个可能的答案。以下是我在运行Windows 2012 R2的VPS上的工作原理:
把你的SQL文件放在我的bin所在的任何地方,它位于C:\Program Files\MySQL\MySQL Server 8.0\bin。
打开Windows命令提示(cmd)
运行C:\Program Files\MySQL\MySQL Server 8.0\bin > mysql -u [username] -p。
输入您的密码
运行命令use [database_name];
使用命令源C://Program Files//MySQL//MySQL Server 8.0//bin//mydatabasename.sql导入文件
它为我做的一切都失败了。这也可能对你有帮助。
在Windows操作系统中,以下命令适用于我。
1 2
| mysql >Use <DatabaseName >
mysql >SOURCE C: /data/ScriptFile.sql ; |
文件名周围没有单引号或双引号。路径将包含"/"而不是"."。