一.导出数据
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文件。至此完美解决。




