ChatGPT解决这个技术问题 Extra ChatGPT

如何从终端导入带有 MySQL 的数据库?

如何从终端导入带有 mysql 的数据库?

我找不到确切的语法。


B
Black

假设您在 Linux 或 Windows 控制台上:

提示输入密码:

mysql -u <username> -p <databasename> < <filename.sql>

直接输入密码(不安全):

mysql -u <username> -p<PlainPassword> <databasename> < <filename.sql>

例子:

mysql -u root -p wp_users < wp_users.sql

mysql -u root -pPassword123 wp_users < wp_users.sql

也可以看看:

4.5.1.5. Executing SQL Statements from a Text File

注意:如果您使用的是 Windows,那么您必须在执行命令之前 cd(更改目录)到 CMD 中的 MySQL/bin 目录。


+1,除非您不应该将密码作为 CLI 参数传递。而只是指定 -p 选项并在提示后手动输入。
如果要通过shell输入,-p和密码之间没有空格。
mysql -u username -h hostname -ppassword databasename < filename.sql 用于来自终端的远程主机
如果您已经在 mysql 命令提示符 (mysql>) 中,则只需键入 source full_path_of_file (注意:在导入前通过命令 USE DATABASE_NAME 选择数据库)。
@Pekka웃,如果我们使用 source,我们可以看到信息性消息(“受影响的行”)和错误消息。但是使用您的解决方案,我们如何使用 < filename.sql 查看消息?
W
Willi Mentzel

Windows的首选方式:

打开控制台并启动交互式 MySQL 模式 use ;源


为什么我们不需要 ;在文件名之后?
@NabeelKhan 大多数 SQL 语句在语句末尾需要 ;,但也有一些例外,包括 USESOURCE
我想知道这是否比管道传输文件更快(如在接受的答案中)。我的怀疑是肯定的。
这比通过 HeidiSQL 导入要快得多...3GB 在 20 分钟内!
没有必要使用“使用<name_of_your_database>”,对吧? dev.mysql.com/doc/refman/5.7/en/mysql-batch-commands.html
M
Mukesh Singh Rathaur

mysql -u <USERNAME> -p <DB NAME> < <dump file path>

-u - 用户名

-p - 提示密码

例如 mysql -u root -p mydb < /home/db_backup.sql

您也可以提供以 -p 开头的密码,但出于安全原因,不建议这样做。密码将出现在命令本身上,而不是被屏蔽。


这是我正在寻找的答案。 “<”这是我留下的标志。
如果 mydb 不存在,那么当我们触发 mysqldump 命令时如何动态创建它?
E
Eric Aya

直接来自 var/www/html

mysql -u username -p database_name < /path/to/file.sql

从mysql内部:

mysql> use db_name;
mysql> source backup-file.sql

S
Shabeer K

然后打开终端

 mysql -u root -p

 eg:- mysql -u shabeer -p

之后创建一个数据库

 mysql> create database "Name";

 eg:- create database INVESTOR;

然后选择那个新数据库“INVESTOR”

 mysql> USE INVESTOR;

从机器中选择sql文件的路径

 mysql> source /home/shabeer/Desktop/new_file.sql;

然后按回车并等待一段时间,如果它全部执行然后

 mysql> exit

https://i.stack.imgur.com/SMrhl.png


M
Mohammad Anini

从终端:

mysql -uroot -p --default-character-set=utf8 database_name </database_path/database.sql

R
Rohit Gupta

在终端类型

mysql -uroot -p1234; use databasename; source /path/filename.sql

这允许查看导入日志
B
Bishoplee

下面的命令在 ubuntu 16.04 上运行,我不确定它是否在其他 Linux 平台上运行。

导出 SQL 文件:

$ mysqldump -u [user_name] -p [database_name] > [database_name.sql]  

示例:mysqldump -u root -p max_development > max_development.sql

导入 SQL 文件:

$ mysqldump -u [user_name] -p [database_name] < [file_name.sql]

示例:mysqldump -u root -p max_production < max_development.sql

注意 SQL 文件应该存在同一个目录


我认为您的 Import 命令是错误的。导入是使用“mysql”cmd 完成的。 “mysqldump”用于导出。
L
Lano

我通常使用这个命令来加载我的 SQL 数据,当它被划分为名称为 000-tableA.sql、001-tableB.sql、002-tableC.sql 的文件时。

for anyvar in *.sql; do <path to your bin>/mysql -u<username> -p<password>  <database name> < $anyvar; done

在 OSX 外壳上运行良好。


B
Bogdan Bogdanov

https://i.stack.imgur.com/TbEVd.png

解释:

首先创建一个数据库或使用现有的数据库。在我的情况下,我正在使用现有数据库通过在我的情况下给出 = ClassicModels 并使用运算符 < 给出数据库的路径 = sakila-data.sql 通过运行 show tables,我得到了如您所见的表格列表。

注意:在我的情况下,我收到错误 1062,因为我试图再次加载相同的内容。


v
vaibhav kulkarni
mysql -u username -ppassword dbname < /path/file-name.sql

例子

mysql -u root -proot product < /home/myPC/Downloads/tbl_product.sql

从终端使用它


L
LumasDesign

经过一段时间的努力,我在https://tommcfarlin.com/importing-a-large-database/中找到了信息

连接到 Mysql(让我们使用 root 作为用户名和密码): mysql -uroot -proot 连接到数据库(假设它被称为 emptyDatabase(你应该得到确认消息):connect emptyDatabase

3 导入源代码,假设文件名为 mySource.sql,它位于名为 myUser 的用户配置文件下名为 mySoureDb 的文件夹中:

source /Users/myUser/mySourceDB/mySource.sql

S
Simon East

打开 MySQL 命令行客户端并输入您的密码更改为要用于将 .sql 文件数据导入的数据库。通过键入: USE your_database_name 现在找到您要执行的 .sql 文件。如果文件位于主本地 C: 驱动器目录中,并且 .sql 脚本文件名为 currentSqlTable.sql,则应键入以下内容:\。 C:\currentSqlTable.sql 并回车执行 SQL 脚本文件。


图 1/2/3 是什么?
A
Andhi Irawan

如果你使用的是 mysql 网站的 sakila-db,在 Linux 平台上非常简单,只需按照下面提到的步骤,下载 sakila-db 的 zip 文件后,将其解压。现在您将有两个文件,一个是 sakila-schema.sql,另一个是 sakila-data.sql。

打开终端 输入命令 mysql -u root -p < sakila-schema.sql 输入命令 mysql -u root -p < sakila-data.sql 现在输入命令 mysql -u root -p 并输入你的密码,现在你已经进入了 mysql具有默认数据库的系统。要使用 sakila 数据库,请使用此命令 use sakila;要查看 sakila-db 中的表,请使用 show tables 命令

请注意提取的文件存在于主目录中。


P
POGSNET

首先通过命令行连接mysql

mysql -u root -p

输入 MySQL 密码

选择目标数据库名称

use <db_name>

选择要导入的 db 文件

SET autocommit=0; source /root/<db_file>;

commit;

这应该这样做。 (感谢您的清除)即使可以通过这种方式成功导入 10GB 数据库,这也将起作用。 :)


V
Viet Hoang

在 Ubuntu 中,从 MySQL 监视器中,您已经使用了以下语法:

mysql> use <dbname> -> USE 语句告诉 MySQL 使用 dbname 作为后续语句的默认数据库

mysql> source <file-path>

例如:

mysql> use phonebook;

mysql> source /tmp/phonebook.sql;

重要提示:确保 sql 文件位于 mysql 可以访问的目录中,例如 /tmp


a
aRvi

对于 Ubuntu/Linux 用户,提取 sql 文件并将其粘贴到某处

例如,您粘贴在桌面上

打开终端转到您的数据库并创建数据库名称 Create database db_name;从 Db 出来(In terminal) cd DESKTOP mysql username root -p db_name < mysql.sql 7.输入密码:....


A
Alex

如果要从可能包含“use”语句的 SQL 转储中导入数据库,我建议使用“-o”选项作为保护措施,以免意外导入错误的数据库。

   •   --one-database, -o

       Ignore statements except those those that occur while the default
       database is the one named on the command line. This filtering is
       limited, and based only on USE statements. This is useful for
       skipping updates to other databases in the binary log.

完整命令:

mysql -u <username> -p -o <databasename> < <filename.sql>

W
Wolfack

在终端上运行命令之前,您必须确保在终端上安装了 MySQL。

您可以使用以下命令来安装它:

sudo apt-get update
sudo apt-get install mysql-server

参考 here

之后,您可以使用以下命令导入数据库:

mysql -u <username> -p <databasename> < <filename.sql>

A
Ankit Saxena

从终端导入 MYSQL 中的数据库的最简单方法是通过以下过程完成 -

mysql -u root -p root database_name < path to your .sql file

我在上面做的是:

使用我的用户名和密码(这里是 root 和 root)进入 mysql 输入密码后,我给出了我想要导入我的 .sql 文件的数据库的名称。请确保数据库已存在于您的 MYSQL 中。数据库名称后跟 <,然后是您的 .sql 文件的路径。例如,如果我的文件存储在 Desktop 中,则路径将为 /home/Desktop/db.sql

而已。完成所有这些后,按 Enter 并等待您的 .sql 文件上传到相应的数据库


K
Kamlesh

-p 和密码之间不能有空格

mysql -u [dbusername] -p[dbpassword] [databasename] < /home/serverusername/public_html/restore_db/database_file.sql

我一直在使用它,它工作得很好。感谢您提出这个问题。祝你有美好的一天。恩乔伊:)


我们还可以在共享、专用和云服务器上的 cron 作业(计划任务)中设置此设置,以不时自动重置或导入数据库。