我有一个名为的数据库nitm
。我没有在那里创建任何表。但是我有一个SQL文件,其中包含数据库的所有必需数据。该文件nitm.sql
位于中C:\ drive
。该文件的大小约为103 MB。我正在使用wamp服务器。
我已在MySQL控制台中使用以下语法导入文件:
mysql>c:/nitm.sql;
但这没有用。
我有一个名为的数据库nitm
。我没有在那里创建任何表。但是我有一个SQL文件,其中包含数据库的所有必需数据。该文件nitm.sql
位于中C:\ drive
。该文件的大小约为103 MB。我正在使用wamp服务器。
我已在MySQL控制台中使用以下语法导入文件:
mysql>c:/nitm.sql;
但这没有用。
Answers:
从mysql控制台:
mysql> use DATABASE_NAME;
mysql> source path/to/file.sql;
如果您指的是相对路径,请确保路径前没有斜杠...我花了一段时间才意识到这一点!大声笑
/home/user/file.sql
path/to/file.sql
是mysql 客户端所在的本地文件系统路径。有时候,MySQL服务器希望路径位于服务器端,IE SELECT ... INTO OUTFILE
会将文件拖放到MySQL服务器的路径中!
最后,我解决了这个问题。我将“ nitm.sql”文件放在“ mysql”文件夹的“ bin”文件中,并使用以下语法。
C:\wamp\bin\mysql\mysql5.0.51b\bin>mysql -u root nitm < nitm.sql
这行得通。
如果您使用的是沼泽,可以尝试一下。只需use your_Database_name
先输入即可。
单击您的wamp服务器图标,然后寻找MYSQL > MSQL Console
并运行它。
如果您没有密码,只需按Enter并输入:
mysql> use database_name;
mysql> source location_of_your_file;
如果您有密码,则将提示您输入密码。首先输入密码,然后输入:
mysql> use database_name;
mysql> source location_of_your_file;
location_of_your_file
应该看起来像 C:\mydb.sql
所以推荐是mysql> source C:\ mydb.sql;
这种导入sql dump对于BIG SQL FILE非常有用。
我将我的文件复制mydb.sq
到目录。C:
它应该是大写C:以便运行
就是这样。
在Windows中,如果以上建议给您一个错误(找不到文件或未知db),您可能希望将正斜杠加倍:
在mysql控制台中:
mysql> use DATABASE_NAME;
mysql> source C://path//to//file.sql;
好的,我正在使用Linux,但我认为Windows也是如此。您可以直接在命令提示符下执行此操作
> mysql -u <user name> -p<password> <database name> < sqlfilename.sql
或者在mysql提示中,您可以使用:
mysql>source sqlfilename.sql
但是,这两种方法在它们显示的结果中都有其自身的好处。在第一种方法中,脚本在遇到错误后立即退出。更好的是,它告诉您发生错误的源文件中的确切行号。但是,它仅显示错误。如果没有遇到任何错误,脚本将显示NOTHING。这可能有点令人不安。因为您最常运行带有一堆命令的脚本。
现在第二种方法(在mysql提示符下)的好处是,它为脚本中的每个不同的MySQL命令显示一条消息。如果遇到错误,它将显示mysql错误消息,但会继续执行脚本。这样做可能很好,因为您可以在再次运行脚本之前返回并修复所有错误。缺点是它不会在脚本中显示遇到错误的行号。这可能会有点痛苦。但是错误消息具有描述性,因此您可能可以找出问题所在。
我(其中之一)更喜欢直接从OS命令行方法。
你几乎在那里使用
mysql> \. c:/nitm.sql;
您也可以通过以下方式获得帮助
mysql> \?
mysql> \. ~/Downloads/backups/file.sql
在mysql>内完美运行,并且从终端coosal
回答也可以。
别忘了使用
charset utf8
如果您的sql文件位于utf-8中:)
因此,您需要执行以下操作:
命令文件
mysql -u root
mysql>字符集utf8
mysql>使用mydbname
mysql>源C:\ myfolder \ myfile.sql
祝好运 ))
从命令行(cmd.exe,而不是从mysql shell中)尝试如下操作:
type c:/nite.sql | mysql -uuser -ppassword dbname
转储中是否包含您的MySQL版本不支持的功能?您也可以尝试删除开始(和结束)的MySQL注释SET语句。
我不知道您的转储是否来自Linux版本的MySQL(行尾)?
我已将Wamp服务器安装在D:驱动器中,所以您必须从ur命令行转到>:
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的用户,密码是phpmyadmin 的密码,因此,如果您尚未为root设置任何密码,而在那个地方没有任何输入,则 db_name是数据库(要进行备份的数据库),backupfile.sql是您要从中备份数据库文件,也可以将备份文件位置(d:\ backupfile.sql)从更改为计算机上的其他任何位置
mysql>c:/nitm.sql;
这样会将mysql命令的输出写入“ nitm.sql;”。(“;”应该做什么?)假设您已经拥有原始文件的副本(在覆盖之前),然后:
mysql < c:/nitm.sql
在Windows OS中,以下命令适用于我。
mysql>Use <DatabaseName>
mysql>SOURCE C:/data/ScriptFile.sql;
文件名周围没有单引号或双引号。路径将包含“ /”而不是“ \”。
对于那些努力完成此工作的人,请尝试在SO上找到的所有可能答案。这是在运行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
它为我做到了,因为其他一切都失败了。它也可能对您有帮助。