使用终端将SQL数据库导入MySQL

6
我正在努力做这件事。
我已经在终端中创建了一个名为"somedb"的新数据库。
CREATE DATABASE somedb

在我的桌面上,我有从phpMyadmin下载的SQL转储文件:somedb.sql。
我尝试过:
somedb < /Users/myname/Desktop/somedb.sql

结果:错误 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 ;

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

--
5个回答

8

我在stackoverflow上找到了一篇文章(链接)

我像这样使用“source”:

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

那很不错。但互联网似乎希望我这样使用该方法:

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

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


互联网想要什么,互联网就得到了!;-) - Wes

2

使用 MAMP Pro,在 MAMP 中创建 "uploads" 目录并将名为 "file.sql" 的 SQL 文件放入其中。在终端中运行下面的查询,这对我起作用了。

请确保用无空格替换括号和用户信息后面的 "-u" 或 "-p"。

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

完美的答案!!!无需创建上传文件夹!我们也可以将位于文件拖到终端中! - SagarPPanchal

1

在终端上键入以下内容:

sudo mysql -p database_name < folder/database_dump_file.sql

它将会要求您输入MySQL密码。

1
您可以尝试以下方法...
进入MySQL提示符,然后输入以下内容。
mysql> \. <path> /filename.sql

请注意 "." 和 sql 文件路径间的空格。希望这样能够起作用。

0
mysql -uUser -p --default-character-set=utf8 databasename < /<path to .sql>

(-p) 将会要求输入密码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接