【问题标题】:Importing a SQL db into mysql using the terminal使用终端将 SQL 数据库导入 mysql
【发布时间】:2013-06-14 20:08:06
【问题描述】:

我正在努力做到这一点。

我在终端中创建了一个名为“somedb”的新数据库,使用

CREATE DATABASE somedb

在我的桌面上,我从 phpMyadmin 下载了 SQL 转储:somedb.sql

我试过了:

somedb < /Users/myname/Desktop/somedb.sql

结果:ERROR 1064 (42000):您的 SQL 语法有错误

mysql -u myname -p -h localhost somedb </Users/myname/Desktop/somedb.sql

结果:ERROR 1064 (42000):您的 SQL 语法有错误;

我是 SQL 新手(导入这个数据库的目的是为了课本练习)

我已授予自己所有权限,并且没有密码。

知道我做错了什么吗?

这是 SQL 转储文件的顶部:

-- phpMyAdmin SQL Dump
-- version 4.0.2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jun 18, 2013 at 02:22 PM
-- Server version: 5.5.31-30.3
-- PHP Version: 5.2.17

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `somedb`
--
CREATE DATABASE IF NOT EXISTS `somedb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `somedb`;

-- --------------------------------------------------------

--
-- Table structure for table `actions`
--

CREATE TABLE IF NOT EXISTS `actions` (
  `action_id` int(11) NOT NULL AUTO_INCREMENT,
  `action` varchar(75) NOT NULL,
  `qualifiers` text NOT NULL,
  `response` varchar(75) NOT NULL,
  `response_vars` text NOT NULL,
  `active` tinyint(4) NOT NULL,
  PRIMARY KEY (`action_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='Stores user defined actions triggered by certain events' AUTO_INCREMENT=3 ;

-- --------------------------------------------------------

--

【问题讨论】:

    标签: mysql sql import terminal


    【解决方案1】:
    mysql -uUser -p --default-character-set=utf8 databasename < /<path to .sql>
    

    (-p) 将要求输入密码

    【讨论】:

      【解决方案2】:

      使用 MAMP Pro,在 MAMP 中创建“上传”目录,并将我的 SQL 文件放在那里,名为“file.sql”。在终端中运行下面的查询并为我工作。

      确保在“-u”或“-p”之后替换括号和用户信息,不要有空格

      /Applications/MAMP/Library/bin/mysql -u<username> -p<root> <db_name> < /Applications/MAMP/uploads/file.sql
      

      【讨论】:

      • 完美答案!!!无需创建上传文件夹!我们也可以将定位的文件拖到终端!
      【解决方案3】:

      在终端输入这个

      sudo mysql -p database_name < folder/database_dump_file.sql
      

      然后它会要求你输入 mysql 密码

      【讨论】:

        【解决方案4】:

        你可以试试这个方法..

        转到 mysql 提示符,然后键入以下内容。

        mysql> \. <path> /filename.sql
        

        注意 .以及 sql 文件的路径。希望这可行。

        【讨论】:

          【解决方案5】:

          我发现了一个 SO 帖子 here

          我像这样使用“来源”:

          SOURCE /Users/myname/Desktop/somedb.sql;
          

          那行得通。很好,但互联网似乎希望我使用这样的方法:

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

          我可能会发布另一个关于何时使用第二种方法的问题,但同时我只是使用了 SQL 转储文件中的源代码

          【讨论】:

          • 互联网想要互联网得到什么! ;-)
          猜你喜欢
          • 2014-11-22
          • 2021-03-23
          • 2011-02-06
          • 2011-05-31
          • 1970-01-01
          • 2012-05-27
          • 2015-05-21
          • 1970-01-01
          相关资源
          最近更新 更多