暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql如何快速导入导出数据

老柴杂货铺 2015-11-10
646

一.导出数据

1.1 使用命令行导出数据

mysql的命令行导出工具是: mysqldump

1.1.1 Linux服务器导出数据

使用方法,[ ]中代表是可选参数,导出时,若不指定要导出库中的表,则会备份整个数据库到当前目录中

# mysqldump -uuser -ppassword [参数] 库名 [表名] > 目标.sql

常用的可选参数有:

-A 备份全部数据库

-d 不导数据,只导表结构

-t 只导出数据,而不添加CREATE TABLE 语句。不备份表结构

-h 备份远程某台主机的数据库数据

-P3306 指定远程某台主机的数据库端口

-q 该选项在导出大表时很有用,强制 dump从服务器直接输出而不是先缓存到内存中。

-x 在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性

–no-defaults 不读任何选项的默认选项文件

–default-character-set=name 设置默认导出字符集

–ignore-table=name 指定不需要备份的表

–ignore-table=database.table 指定某个数据库中不需要备份的表

–extented-insert=false 导出时生成多条insert,而不是一条insert


举例说明:

本地数据库账号为root,密码123456

备份本地数据库中的 china 这个库的数据到/home目录中

# cd home

# mysqldump -uroot -p123456 china > china.sql


只备份china 这个库中的表shanghai这个表的数据

# mysqldump -uroot -p123456 china shanghai > china_shanghai.sql


备份数据库中的全部库到本地

# mysqldump -uroot -p123456 -A > all.sql


以utf8字符集导出 china 这个库的数据

# mysqldump -uroot -p123456 –default-character-set=utf8 china > china.sql


导出远程服务器192.168.1.102上的数据库中的today库 到本地服务器上,远程账号mstsc,密码123456

# mysqldump -umstsc -p123456 -h192.168.1.102 today > today.sql


1.1.2 Windows服务器导出数据

Windows服务器命令行导出数据库的命令和Linux是一样的,具体导出命令,不再赘述。

需要注意的是,在系统的环境变量中,配置mysql的命令目录给path变量,这样才能直接在cmd中使用mysql的命令

如果没有设置path变量,那只能使用绝对路径操作命令。

windows, 一般在安装mysql时,勾选这里会自动将mysql的命令目录赋给path变量

还需要注意一点,就是cmd中如果没有切换到具体的路径下,那导出的文件在当前的目录中



直接输入命令导出的话,那导出的sql文件在 C:\Documents and Settings\Administrator 目录中可以找到。如果切换到了其它目录下,那就去那个目录中找导出的sql文件。



例如上图,先切换到了d盘,那导出的sql文件就在D盘根目录中。


1.2 使用图形化工具导出

图形化工具一般使用phpmyadmin,下面演示一下如何使用phpmyadmin导出数据库或数据库使用账号、密码登陆phpmyadmin后,导出单库:

先选中要导出的库,然后点击" 导出" 按钮,再点击 "执行" 按钮就会导出这个库的数据


导出多库

直接点击" 导出" 按钮,在" 自定义" 中选中多个库,执行导出


导出单表:

先选中要导出库中的表,然后点击“导出”按钮,再点击 "执行" 按钮就会导出这个表的数据



导出多表:

先选中要导出库,然后点击" 导出" 按钮,在" 自定义" 中选中多张表,执行导出


二.导入数据

2.1 命令行形式导入sql文件

2.1.1 普通命令导入数据

首先将sql文件上传到服务器的一个目录中

[ ] 中是可选参数,命令格式如下:

# mysql -uuser -ppassword [-h203.x.xx.xxx] [--default-character-set=xxx] 库名 < 文件.sql


例如:

mysql -uroot-p123456 china < china.sql

这里是将china.sql 这个sql文件,导入到china这个库中去


注意:

1) 要进入sql文件所在的目录,再进行导入,否则会提示找不到sql文件

2) 要导入的库,一定要存在,否则会报错

3) -h203.x.xx.xxx 代表向远程这个203开头的服务器上的数据库中导入数据

4) –default-character-set=xxx 表示以什么字符集导入数据


2.1.2 source命令导入数据

要先进入sql文件所在的目录,再连接mysql,进入mysql命令行下,再执行source命令进行导入

# mysql -uuser -ppassword

mysql> source test.sql


# mysql -uuser -ppassword -h203.x.xx.xxx

mysql> source test.sql

代表向远程这个203开头的服务器上的数据库中导入数据


2.2 通过图形化形式导入sql文件

图形化导入数据,一般使用phpmyadmin这个工具

但是这个工具导入sql文件默认有2M大小的限制

左侧先选中数据库,然后点击上方的 "导入" 按钮,再点击 "选择文件" ,找到sql文件后,点击 "执行" 按钮进行导入



三.解决PHPmyadmin中上传sql文件最大2M限制问题

当用phpMyAdmin导入的资料库大小大于2M的时候,会出现如下提示:

No data was received to import. Either no file name was submitted、or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.

解决方法1

找到php.ini搜索这3个地方 upload_max_filesize , memory_limit 和 post_max_size 将他们后面的值修改成大于你需要导入的数据库大小就好了。然后重启的PHP环境.

解决方法2

以yum install phpMyAdmin为例,安装目录/usr/share/phpMyAdmin

step1 在 phpMyAdmin目录里新建一个目录 upload.

cd usr/share/phpMyAdmin

mkdir upload

step2 查询phpMyAdmin配置文件

find / -name config.default.php

找到并编辑文件:

vim /usr/share/phpMyAdmin/libraries/config.default.php

在vim编辑器中输入/UploadDir,找到并修改为 $cfg['UploadDir'] = "upload"; 然后保存.

step3 用 FTP 上传 需要导入的 .sql 文件到/usr/share/phpMyAdmin/upload/ 下

step4 访问 phpMyAdmin,点击 Import(导入) ,就会出现选择服务器上的文件的下拉框,选择刚才用FTP上传的SQL文件。至此完美解决。



文章转载自老柴杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论