【问题标题】:How can I import a database with MySQL from terminal?如何从终端导入带有 MySQL 的数据库?
【发布时间】:2011-05-31 14:42:56
【问题描述】:

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

我找不到确切的语法。

【问题讨论】:

    标签: mysql import


    【解决方案1】:

    假设您使用的是 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 用户名 -h 主机名 -ppassword 数据库名
    • 如果您已经在 mysql 命令提示符 (mysql>) 中,则只需键入 source full_path_of_file(注意:在导入前通过命令 USE DATABASE_NAME 选择数据库)。
    • @Pekka웃,如果我们使用source,我们可以看到信息性消息(“受影响的行”)和错误消息。但是使用您的解决方案,我们如何使用&lt; filename.sql 查看消息?
    【解决方案2】:

    windows 的首选方式:

    1. 打开控制台,启动交互式 MySQL 模式

    2. use &lt;name_of_your_database&gt;;

    3. source &lt;path_of_your_.sql&gt;

    【讨论】:

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

    mysql -u &lt;USERNAME&gt; -p &lt;DB NAME&gt; &lt; &lt;dump file path&gt;

    -u - 用户名

    -p - 提示密码

    例如 mysql -u root -p mydb &lt; /home/db_backup.sql

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

    【讨论】:

    • 这是我正在寻找的答案。 “
    • 如果 mydb 不存在,那么当我们触发 mysqldump 命令时如何动态创建它?
    【解决方案4】:

    直接来自 var/www/html

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

    从mysql内部:

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

    【讨论】:

      【解决方案5】:

      然后打开终端

       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
      

      【讨论】:

        【解决方案6】:

        从终端:

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

        【讨论】:

          【解决方案7】:

          在终端类型中

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

          【讨论】:

          • 这允许查看导入日志
          【解决方案8】:

          我通常使用这个命令来加载我的 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 shell 上运行良好。

          【讨论】:

            【解决方案9】:

            以下命令在 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

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

            【讨论】:

            • 我认为您的导入命令是错误的。使用“mysql” cmd 完成导入。 “mysqldump”用于导出。
            【解决方案10】:

            解释:

            1. 首先创建一个数据库或使用现有的数据库。就我而言,我使用的是现有数据库

            2. 在我的例子中,通过提供&lt;name of database&gt; = ClassicModels 加载数据库,并使用运算符&lt; 提供database = sakila-data.sql 的路径

            3. 通过运行 show tables,我得到了如您所见的表列表。

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

            【讨论】:

              【解决方案11】:
              mysql -u username -ppassword dbname < /path/file-name.sql
              

              例子

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

              从终端使用这个

              【讨论】:

                【解决方案12】:

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

                1. 连接到 Mysql(让我们使用 root 作为用户名和密码):

                  mysql -uroot -proot
                  
                2. 连接到数据库(假设它被称为 emptyDatabase(您应该会收到一条确认消息):

                  connect emptyDatabase
                  

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

                source /Users/myUser/mySourceDB/mySource.sql
                

                【讨论】:

                  【解决方案13】:
                  1. 打开 MySQL 命令行客户端并输入您的密码

                  2. 更改为要用于将 .sql 文件数据导入的数据库。输入:

                    USE your_database_name
                    
                  3. 现在找到您要执行的 .sql 文件。
                    如果文件位于主本地 C: 驱动器目录且 .sql 脚本文件名为 currentSqlTable.sql,则应键入以下内容:

                    \. C:\currentSqlTable.sql
                    

                    然后按Enter 来执行SQL 脚本文件。

                  【讨论】:

                  • 图1/2/3是什么?
                  【解决方案14】:

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


                  1. 打开终端
                  2. 输入命令mysql -u root -p
                  3. 输入命令mysql -u root -p
                  4. 现在输入命令mysql -u root -p并输入你的密码,现在你已经进入mysql系统了default数据库。
                  5. 要使用 sakila 数据库,请使用此命令 use sakila;
                  6. 要查看 sakila-db 中的表,请使用 show tables 命令

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

                  【讨论】:

                    【解决方案15】:

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

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

                    mysql> source <file-path>
                    

                    例如

                    mysql> use phonebook;
                    
                    mysql> source /tmp/phonebook.sql;
                    

                    重要:确保sql文件在mysql可以访问喜欢/tmp的目录中

                    【讨论】:

                      【解决方案16】:

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

                      您可以使用以下命令进行安装:

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

                      引用here

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

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

                      【讨论】:

                        【解决方案17】:

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

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

                        我在上面做的是:

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

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

                        【讨论】:

                          【解决方案18】:

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

                          例如,您粘贴在桌面上

                          1. 打开终端
                          2. 转到您的数据库并创建数据库名称
                          3. 创建数据库db_name;
                          4. 从 Db 出来(在终端)
                          5. cd 桌面
                          6. mysql用户名root -p db_name

                          【讨论】:

                            【解决方案19】:

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

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

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

                            【讨论】:

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

                            先通过命令行连接mysql

                            mysql -u root -p
                            

                            输入 MySQL 密码

                            选择目标数据库名称

                            use <db_name>
                            

                            选择要导入的 db 文件

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

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

                            【讨论】:

                              猜你喜欢
                              • 2013-06-14
                              • 1970-01-01
                              • 1970-01-01
                              • 2014-11-22
                              • 2014-10-28
                              • 2011-09-06
                              • 2014-06-10
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多