从mysql中 导出/导入表及数据

2023-12-06 13:38

本文主要是介绍从mysql中 导出/导入表及数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从mysql中 导出/导入表及数据

在命令行下mysql的数据导出有个粉好用的工具mysqldump,它的参数有一大把,可以这样查看:
mysqldump

最常用的:
mysqldump -uroot databasefoo table1 table2 > foo.sql

这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数

mysql的数据导入也是相当便捷的,如:
mysql -uroot databasefoo < foo.sql

这样就可以将foo.sql的数据全部导入数据库databasefoo

1.导出整个数据库

  mysqldump -u 用户名 -p 数据库名 > 导出的文件名

  mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

  2.导出一个表

  mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

  mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

  3.导出一个数据库结构

  mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql

  -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table

  4.导入数据库

  常用source 命令

  进入mysql数据库控制台,

  如mysql -u root -p

  mysql>use 数据库

  然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

  mysql>source d:wcnc_db.sql

一般人用 phpmyadmin 里面的数据库导入,导出功能,非常方便。但是在实际应用中,发现如下几个问题:

1 数据库超过一定尺寸,比如6M 这时使用导出一般没问题,可以正确的保存到本机硬盘上面,但是导入则不行!原因是:一般的 PHP.INI 里面设置临时文件/上传文件的大小限制为2M,而phpmyadmin使用了上传的方式,造成失败。

2 导出到硬盘的 .SQL 文件在导回时,经常出现由于某些单引号的问题引起失败,造成导入失败,只能用 mysql等应用程序导入了。

我的数据库已经超过10M,所以必须解决这个问题。我的思路:

导出: 用phpmyadmin 保存数据库/表格结构,用脚本读取数据库内容并保存到文件里面!
导入: 用phpmyadmin 恢复数据库/表格结构,用脚本读取文件,然后保存到库里面!

导出程序如下:调用方法为 ****.php?table=tablename
这个简单的程序目前一次保存一个表格!!每行为一个字段的数据!!

if($table==““)exit();
mysql_connect(“localhost“,“name“,“password“);
mysql_select_db(“database“);
$result = mysql_query(“select * from $table“);
if(mysql_num_rows($result) <= 0) exit();
echo “开始转换数据到文本...
“;
$handle = fopen(“$table.txt“,“w“);
$numfields = mysql_num_fields($result);
fputs($handle,$numfields.“\r\n“);
for($k=0;$k{
$msg = mysql_fetch_row($result);
for($i=0;$i<$numfields;$i++)
{
$msg[$i] = str_replace(“\r\n“,“&&php2000mysqlreturn&&“,$msg[$i]);
$msg[$i] = str_replace(“\n“ ,“&&php2000mysqlreturn&&“,$msg[$i]);
fputs($handle,$msg[$i].“\r\n“);
}
fputs($handle,“------- php2000 dump data program V1.0 for MySQL --------\r\n“);
}
fclose($handle);
echo “ok“;
?>

导入的程序如下:用法同上面!

if($table==““)exit();
mysql_connect(“localhost“,“name“,“password“);
mysql_select_db(“database“);
$message = fi1e(“$table.txt“);
echo $numfields = chop($message[0]);
for($k=1;$k{
$value=““;
for ($i=$k;$i<($k+$numfields-1);$i++)
{
$tmp = str_replace(“&&php2000mysqlreturn&&“,“\r\n“,chop($message[$i]));
$value .= “““.addslashes($tmp).““,“;
}
$tmp = str_replace(“&&php2000mysqlreturn&&“,“\r\n“,chop($message[$k+$numfields-1]));
$value .= “““.$tmp.“““;
$query = “insert into $table values (“.$value.“)“;
echo mysql_error();
mysql_query($query);
echo $k.“ “;
}
echo “ok“;
?>

使用方法和可能的问题!
1 导入时 fi1e()函数可能会有问题(我的10M的数据没出现问题),可以改为 fopen()然后没次读一行!!
2 导入,导出都需要用 ftp 我作,也就是导出后,用 ftp 把数据转到本机,导入时先用ftp转移数据到服务器!

这篇关于从mysql中 导出/导入表及数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/462023

相关文章

MySQL中DATE_FORMAT时间函数的使用小结

《MySQL中DATE_FORMAT时间函数的使用小结》本文主要介绍了MySQL中DATE_FORMAT时间函数的使用小结,用于格式化日期/时间字段,可提取年月、统计月份数据、精确到天,对大家的学习或... 目录前言DATE_FORMAT时间函数总结前言mysql可以使用DATE_FORMAT获取日期字段

在 Spring Boot 中连接 MySQL 数据库的详细步骤

《在SpringBoot中连接MySQL数据库的详细步骤》本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,... 目录一、添加依赖二、配置数据库连接三、创建实体类四、创建仓库接口五、创建服务类六、创建控制器七、运行应用程序八

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

MySQL 升级到8.4版本的完整流程及操作方法

《MySQL升级到8.4版本的完整流程及操作方法》本文详细说明了MySQL升级至8.4的完整流程,涵盖升级前准备(备份、兼容性检查)、支持路径(原地、逻辑导出、复制)、关键变更(空间索引、保留关键字... 目录一、升级前准备 (3.1 Before You Begin)二、升级路径 (3.2 Upgrade

MySQL连表查询之笛卡尔积查询的详细过程讲解

《MySQL连表查询之笛卡尔积查询的详细过程讲解》在使用MySQL或任何关系型数据库进行多表查询时,如果连接条件设置不当,就可能发生所谓的笛卡尔积现象,:本文主要介绍MySQL连表查询之笛卡尔积查... 目录一、笛卡尔积的数学本质二、mysql中的实现机制1. 显式语法2. 隐式语法3. 执行原理(以Nes

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o