sql转储文件..加载到mysql

Posted

技术标签:

【中文标题】sql转储文件..加载到mysql【英文标题】:sql dump file.. load to mysql 【发布时间】:2011-11-16 14:35:23 【问题描述】:

首先,请假设这是我第一次在 SQL 中编写单个字母的代码。所以请拜托...如果你能解释我的每一步,那将是非常友好的。 :) 我正在使用 mac 进行此开发。 所以在桌面上,我有一个巨大的(1.5GB)数据库转储文件。 我有 mysqlworkbench(是的,我也从来没有在那个工作过:() 我已经安装了 MySQLdb。 所以,基本上我想做的是使用python数据库中的数据。 所以我有 python .. mysqldb 连接到 db .. 巨大的 db 和 mysqlworkbench .. 现在我假设,这个转储文件没有用,因为它不是数据库的形式。 那么我如何将这个转储“挂载”到数据库..(mysqlworkbench) 之后我如何从python查询.. (如端口号..用户名,密码!!?) 如果有人可以帮助我,那将是巨大的帮助。我从早上开始就被困在这里面了。:(

【问题讨论】:

文件是如何开始的? (这样您就可以澄清您的意思,因为您是 SQL 新手)。 (由于 5 分钟后无法编辑 cmets,所以我再次问一个已编辑的问题)... 文件是如何开始的? (这样您就可以澄清您的意思,因为(我假设)您是 SQL 新手)。您可以通过键入“head ”来执行此操作。它是否以“CREATE DATABASE”开头? 嗨.. head 给出以下结果.. MySQL dump 10.13 Distrib 5.1.53, for unknown-linux-gnu (x86_64) -- -- 主机:king-prod-trkdb01 数据库: king_tracking -- ---------------------------------------------- -------- -- 服务器版本 5.1.53-log /*!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 设置名称 utf8 */; 嗯.. 也每当我尝试在 mysql 中创建数据库时.. 我收到此错误:错误 1006 (HY000): Can't create database 'testdb' (errno: 2) 【参考方案1】:

为了使用文件中的数据,需要将其导入数据库。 (将文件想象成 MySQL 创建数据库的配方。现在您需要告诉 MySQL 从配方中创建数据库)。

您可以使用命令行、python 脚本甚至 MySQL 工作台导入数据库。但是,由于文件的大小,使用 MySQL 工作台可能会出现问题(注意:我对 MySQL 工作台不熟悉)。

要使用命令行导入数据库,请使用以下命令:

mysql -u <username> -p -h localhost king_tracking < <filename>

要在 python 中实际使用数据库,有几个分步教程可用,可从google search 轻松访问。一个基本脚本是 (from here)

import MySQLdb

conn = MySQLdb.connect (host = "localhost",
                       user = "testuser",
                       passwd = "testpass",
                       db = "test")
cursor = conn.cursor ()
cursor.execute ("SELECT VERSION()")
row = cursor.fetchone ()
print "server version:", row[0]
cursor.close ()
conn.close ()

这只是显示 MySQL 的版本,但是如果

"SELECT VERSION()"

替换为你自己的查询,比如

"SELECT * FROM <tablename> LIMIT 0,30"

您可以执行自己的查询。

为了理解连接 python 和 MySQL 的教程,你应该分别熟悉两者。一个好的SQL tutorial 是the one at W3schools。


创建表的问题与原始问题不同,但在尝试将文件导入数据库之前可能需要解决。

【讨论】:

以上是关于sql转储文件..加载到mysql的主要内容,如果未能解决你的问题,请参考以下文章

mysql的转储SQL文件

从一个非常大的 MySQL 转储文件中以 csv 格式获取数据

导入 40GB+ .sql 文件

mysql数据库解转储sql文件的问题

MySQL 使用 mysqldump 转储SQL格式的数据及重新加载SQL格式的备份

使用命令行恢复 MYSQL 转储文件