将SQL文件导入到mysql中
我有一个数据库`nitm`。 我没有在那里创build任何表。 但我有一个SQL文件,其中包含数据库的所有必要的数据。 该文件是`C:\驱动器`中的`nitm.sql`。 这个文件的大小约为103M。 我正在使用wamp服务器。
我已经在mysql控制台中使用以下语法来导入文件。
mysql>c:/nitm.sql;
但是这不起作用。
从mysql控制台:
mysql> use DATABASE_NAME;
mysql> source path/to/file.sql;
如果你指的是相对path,确保path前没有斜线……我花了一段时间才意识到这一点! 大声笑
最后,我解决了这个问题。 我把`nitm.sql`文件放在`mysql`文件夹的bin文件中,并使用下面的语法。
C:\wamp\bin\mysql\mysql5.0.51b\bin>mysql -u root nitm < nitm.sql
这工作。
如果你正在使用wamp,你可以试试这个。 只要首先键入use your_Database_name
。
-
点击您的wamp服务器图标,然后查找
MYSQL > MSQL Console
然后运行它。 -
如果您没有密码,只需按Enter键入:
mysql> use database_name; mysql> source location_of_your_file;
如果你有密码,你会提示input密码。 先input你的密码,然后input:
mysql> use database_name; mysql> source location_of_your_file;
location_of_your_file
应该看起来像C:\mydb.sql
所以推荐使用mysql> source C:\ mydb.sql;
这种导入sql转储对BIG SQL FILE很有帮助。
我复制我的文件mydb.sq
到目录C:
mydb.sq
它应该是大写C:为了运行
就是这样。
在Windows中,如果上面的build议给你一个错误(文件未find或未知的数据库),你可能要加倍正斜杠:
在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错误消息,但通过脚本继续。 这可能是好的,因为您可以返回并在再次运行脚本之前修复所有错误。 缺点是它不会显示遇到错误的脚本中的行号。 这可能有点痛苦。 但是,错误信息是描述性的,所以你可以找出问题所在。
举个例子,我比较喜欢直接从操作系统命令行的方法。
如果你正在使用xampp
C:\xampp\mysql\bin\mysql -uroot -p nitm < nitm.sql
你几乎在那里使用
mysql> \. c:/nitm.sql;
您也可以通过访问帮助
mysql> \?
对于XAMPP上的本地主机。 打开一个cmd窗口并input
cd C:\xampp\mysql\bin mysql.exe -u root -p
注意! -p之后没有分号input你的密码并input
use database_name;
select你需要的数据库。
检查你的桌子是否在那里
show tables;
从你的sql文件导入
source sqlfile.sql;
我已经把我的文件放在C:\ xampp \ mysql \ bin位置,以便不会与sql文件的位置混淆。
不要忘记使用
charset utf8
如果你的SQL文件是在UTF-8 🙂
所以你需要做的是:
CMD.EXE
mysql -u root
mysql> charset utf8
mysql>使用mydbname
mysql> source C:\ myfolder \ myfile.sql
祝你好运 ))
在Linux中,在启动mysql之前,导航到包含.sql文件的目录。 系统光标现在与文件位于同一位置,您将不需要path。 使用源myData.sql我的date被replace为您的文件的名称。
cd whatever directory mysql - p
连接targetDB
source myData.sql
完成
尝试:
mysql -u username -p database_name < file.sql
检查MySQL选项 。
注意:最好使用SQL文件file.sql
的完整path。
从命令行(CMD.EXE,而不是在MySQL shell)尝试类似于:
type c:/nite.sql | mysql -uuser -ppassword dbname
您的转储是否包含您的MySQL版本不支持的function? 您也可以尝试删除开始(和结束)MySQL注释的SET语句。
我不知道你的转储是否来自Linux版本的MySQL(行结尾)?
我已经在D:驱动器中安装了我的wamp服务器,所以你必须从你的命令行 – >(如果你已经在c:盘上安装了你的wamp,那么只需要把d:wtih c:在这里)
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只是在那个地方没有types, db_name是数据库(为你的备份数据库),backupfile.sql是你想要你的数据库的备份文件,你也可以将备份文件位置(d:\ backupfile.sql)从您的计算机上的任何其他地方
mysql>c:/nitm.sql;
那会把mysql命令的输出写到'nitm.sql'中 (什么是';'应该做的?)假设你有一个原始文件的副本(在你覆盖之前),那么:
mysql < c:/nitm.sql
导出特定的数据库
djimi:> mysqldump --user=root --host=localhost --port=3306 --password=test -B CCR KIT >ccr_kit_local.sql
这将导出CCR和KIT数据库…
导入所有导出的数据库到特定的Mysql实例(您必须在您的转储文件的位置)
djimi:> mysql --user=root --host=localhost --port=3306 --password=test < ccr_kit_local.sql
在Windows操作系统中,以下命令适用于我。
mysql>Use <DatabaseName> mysql>SOURCE C:/data/ScriptFile.sql;
文件名周围没有单引号或双引号。 path将包含“/”而不是“\”。