【问题标题】:import a large mysql database using php使用 php 导入大型 mysql 数据库
【发布时间】:2012-11-23 16:59:28
【问题描述】:

我有一个大约 300mb 的 mysql 数据库,但不幸的是我无法使用 phpmyadmin 将此文件导入我的网络主机,而且我没有 shell 访问权限。

我尝试了以下替代方法

MySQLDumper

大转储

但可以将其插入数据库。

数据库已上传到 .sql 格式的文件夹。是否可以创建一个 php 脚本来读取 .sql 文件并执行查询?

使用 mysqldump 转储 sql 文件。

下面是格式。 (请不要说我删除了一些行,因为有这么多)

DROP TABLE IF EXISTS `prime_lands`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `hotels` (
  `hotel_id` int(11) DEFAULT NULL,
  `chain_id` int(11) DEFAULT NULL,
  `chain_name` varchar(100) DEFAULT NULL,
  `brand_id` int(11) DEFAULT NULL,
  `brand_name` varchar(100) DEFAULT NULL,
  `hotel_name` varchar(100) DEFAULT NULL,
  `hotel_formerly_name` varchar(100) DEFAULT NULL,
  `hotel_translated_name` varchar(100) DEFAULT NULL
...........
)

-- Dumping data for table `prime_lands`
--

LOCK TABLES `prime_lands` WRITE;
/*!40000 ALTER TABLE `prime_lands` DISABLE KEYS */;

INSERT INTO `prime_lands` VALUES (1,421,'Samed Resorts Group',921,'Samed Resorts Group','Sai Kaew Beach Resort','','Sai Kaew Beach Resort',.......................)

....................................

【问题讨论】:

  • 最有可能,你能提供一个简单的sql文件格式吗?它是用 mysqldump 创建的吗?它只是一个查询文件吗?
  • @Paronity 它是一个 mysqldump.. 我已经添加了示例代码..

标签: php mysql


【解决方案1】:

应该有效:

$run=   exec ('mysql -u username -p password database_name < filename.sql ', $out);
var_dump($run);
var_dump($out);

可能更适合调试:

$out = shell_exec('mysql -u username -p password database_name < filename.sql');
var_dump($out);

作为一次,您可以要求您的主机为您运行命令,大多数“好”主机会帮助您解决这个问题。

【讨论】:

  • 我试过了,但没用。我联系了我的托管 Godaddy bt,他们继续发送有关如何使用 phpmyadmin 导入的指南,这对我不起作用。
  • 您返回了什么错误? go-daddy 是这个星球上最糟糕的主人 - 这么简单的答案 - 移动。
  • @Dragon 当我运行第一个代码时,我得到这个注释“default-auth(无默认值)”
猜你喜欢
  • 2011-04-16
  • 1970-01-01
  • 2016-04-08
  • 2014-07-15
  • 2012-12-18
  • 2011-10-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
相关资源
最近更新 更多