我有一个.sql
从导出的文件phpMyAdmin
。我想使用命令行将其导入到其他服务器中。
我有Windows Server 2008 R2安装。我将.sql
文件放在C驱动器上,并尝试了此命令
database_name < file.sql
它不起作用。我收到语法错误。
- 如何顺利导入该文件?
- 我需要先创建一个数据库吗?
database < file.sql
在我看来不像任何命令,如果您看到一些语法错误,请与他人分享
我有一个.sql
从导出的文件phpMyAdmin
。我想使用命令行将其导入到其他服务器中。
我有Windows Server 2008 R2安装。我将.sql
文件放在C驱动器上,并尝试了此命令
database_name < file.sql
它不起作用。我收到语法错误。
database < file.sql
在我看来不像任何命令,如果您看到一些语法错误,请与他人分享
Answers:
尝试:
mysql -u username -p database_name < file.sql
检查MySQL选项。
注1:最好使用SQL文件的完整路径file.sql
。
注2:使用-R
和--triggers
保留原始数据库的例程和触发器。默认情况下不会复制它们。
注意3如果可能不存在,则可能必须从mysql创建(空)数据库,并且导出的SQL不包含CREATE DATABASE
(用--no-create-db
或-n
选项导出),然后才能导入它。
CREATE DATABASE db-name;
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
电源外壳
C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"
MySQL命令行
mysql> use db_name;
mysql> source backup-file.sql;
mysql>
命令行中启动它?您应该改用shell。
mysql
直接从Powershell 运行呢?
关于导入大文件所花费的时间:最重要的是,它花费了更多时间,因为MySQL的默认设置为autocommit = true
。在导入文件之前,必须先将其关闭,然后检查导入的工作方式像gem。
您只需要执行以下操作:
mysql> use db_name;
mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
source
我忘记的命令。我们大多数人要做到这一点,而我们是在登录其他命令中独立的命令,而不是标准登录>注入>注销oneliner在谷歌搜索结果页面的顶部。
autocommit=0
部分在速度方面产生了巨大的变化。
autocommit=0
在更大的文件上工作吗?像8gb sql文件。
autocommit
。值得在编辑器中检查数据库转储,它可能已经以开头SET autocommit=0;
。
在所有答案中,对于上述问题,这是最好的答案:
mysql> use db_name;
mysql> source file_name.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
文件夹/目录中,请转到桌面目录并输入如下命令:
~ ? 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
-p
与password
mysql -u root -p"password" bank < bank.sql
mysql -u username -ppassword db_name < file.sql
.bash_history
导入架构的最简单方法:
登录到mysql并发出以下提到的命令。
mysql> use your_db_name;
mysql> source /opt/file.sql;
如果您已经有数据库,请使用以下命令导入dump
或sql
文件:
mysql -u username -p database_name < file.sql
如果不需要,则需要在MySQL中创建相关的数据库(空),为此首先要MySQL
通过在终端或cmd中运行以下命令来登录控制台
mysql -u userName -p;
并在提示时提供密码。
接下来,创建一个数据库并使用它:
mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;
然后将sql
或dump
文件从导入到数据库
mysql> source pathToYourSQLFile;
注意:如果终端不在dump
or sql
文件所在的位置,请使用上面的相对路径。
1.
创建数据库(如果不存在)。2.
将源文件指向创建的数据库以导入数据/元数据。
bin
到mysql服务器的文件夹中。source databasefilename.sql
和Enter适用于我的解决方案如下:
Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
要将数据库转储到SQL文件中,请使用以下命令。
mysqldump -u username -p database_name > database_name.sql
要将SQL文件导入数据库(确保您与SQL文件位于同一目录中或提供文件的完整路径),请执行以下操作:
mysql -u username -p database_name < database_name.sql
转到拥有MySQL可执行文件的目录。-u
输入用户名并-p
提示输入密码:
C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
我认为值得一提的是,您还可以加载gzip(压缩)文件,zcat
如下所示:
zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
要一次导入多个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
对于XAMPP:
C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql
开车去:
command: d:
MySQL登录
command: c:\xampp\mysql\bin\mysql -u root -p
它将要求密码。输入:
pwd
选择数据库
use DbName;
提供文件名
\.DbName.sql
采用:
mysql -u root -p password -D database_name << import.sql
使用MySQL帮助获取详细信息- mysql --help
。
我认为在我们的情况下,这些将是有用的选择:
[~]$ 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.
有趣的是,如果我们要导入一个大型数据库而没有进度条。使用管道查看器,查看通过管道进行的数据传输
对于Mac, brew install pv
对于Debian / Ubuntu ,apt-get install pv
。
对于其他,请参考pv-Pipe Viewer
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
yum install pv
虽然大多数答案只是提到简单的命令
mysql -u database_user -p [db_name] <database_file.sql
今天,在此命令不足的情况下,数据库和表具有utf8-collation是很常见的。在导出的表中有utf8-collation,需要使用以下命令:
mysql -u database_user -p --default-character-set = utf8 [db_name] <database_file.sql
Surley也可以用于其他字符集,如何在此处显示正确的符号:
https://dev.mysql.com/doc/refman/5.7/zh-CN/show-collation.html
还有一条评论提到,如果数据库永远不存在,则必须首先创建一个空数据库。在某些情况下,这可能是正确的,但取决于导出文件。如果导出的文件已包含创建数据库的命令,则无需在单独的步骤中创建数据库,甚至可能导致导入错误。因此,建议在导入时首先查看文件中的内容,以了解其中包含哪些命令,在导出时,请注意设置,尤其是在文件很大且难以在编辑器中读取的情况下。
这里还列出并解释了该命令的更多参数:
https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html
如果您使用其他数据库版本,请考虑搜索相应的手册版本。提到的链接是指MySQL 5.7版。
您可以尝试此查询。
出口:
mysqldump -u username –-password=your_password database_name > file.sql
进口:
mysql -u username –-password=your_password database_name < file.sql
和此链接后面的详细信息:
导入数据库:
mysql -u用户名-p数据库名</文件路径/文件名.sql
从数据库导出:
mysqldump -u用户名-p数据库名> /文件路径/文件名.sql
执行这些命令后,将提示您输入MySQL密码。
为了备份,制作一个BAT文件并使用Task Scheduler运行该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
以下步骤有助于上传 file.sql
MySQL数据库。
第1步:上传file.sql.zip
到任何目录并在其中解压缩
注:sudo apt-get install unzip
:sudo apt-get unzip file.sql.zip
第2步:现在,导航到该目录。例:cd /var/www/html
第三步: mysql -u username -p database-name < file.sql
输入密码,然后等待上传完成。
我一直遇到未创建数据库的问题。
我这样固定
mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql