导出(export)和导入(import)MySQL的表(table)定义和数据。

MySQL导出数据(mysqldump)

mysqldump -u 用户名 -p [-h 主机名] [--port 端口] 数据库名 [表明]  [-t]> 文件名
  • 将MySQL的表定义和数据导出至本地文本文件
  • mysqldump在未登录到mysql的状态下执行
  • 如果省略了表名称,则以数据库为单位导出
  • 指定-t时只输出数据
  • 执行mysqldump命令后,输入密码
  • 如果已经有文件,将被覆盖

以下是MySQL的mysqldump的链接。还有很多其他选项。

https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html

执行命令

cd到mysqldump.exe的文件夹,在命令提示中执行以下命令。在这里cd至D:\xampp\mySql\bin文件夹。

mysqldump -u root -p -h localhost --port 3309 sysblog demo > D:\mysqldump\demo.txt
Enter password:

第1行指定了sysblog数据库的demo表,制动port有两个–。在第二行输入密码。

执行结果

以下是导出后的demo.txt文件内容。

<省略>
DROP TABLE IF EXISTS `syain`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `syain` (
  `id` int(11) NOT NULL,
  `name` varchar(20) NOT NULL,
  `romaji` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
<中略>
LOCK TABLES `demo` WRITE;
/*!40000 ALTER TABLE `demo` DISABLE KEYS */;
INSERT INTO `demo` VALUES (1,'sysblog01','null'),(2,'sysblog02','1'),(3,'sysblog03','2');
/*!40000 ALTER TABLE `demo` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
<省略>

第2行是drop文,仅在导入时表格存在时执行。
第5行是create文,导入时使用。
第15行是数据部分,因为是以insert文的形式写的,所以可以导入使用。

MySQL导入数据(mysql)

mysql -u 用户名 -p [-h 主机名] [--port 端口] 数据库名 < 文件名
  • 将从MySQL导出的文本文件导入MySQL。
  • 未登录到mysql的状态下执行。
  • 执行mysql命令后,输入密码。

执行命令

cd至mysql.exe的文件夹,执行以下命令。在这里cd到D:\xampp\mySql\bin文件夹。

mysql -u root -p -h localhost --port 3309 sysblog < D:\mysqldump\demo.txt
Enter password:

第1行指定sysblog数据库。第二行输入密码。