一: 命令行方式
导出数据库到文件
1. 导出整个数据库
step1: 切换到MySQL中到bin文件夹的目录
step2: mysqldump -u root -p 数据库名 > 文件名.sql
输入后会让你输入进入MySQL的密码,sql文件自动生成到bin文件下
如果不想输密码,可以使用如下命令:(-u和用户名,-p和密码之间没有空格。123456是密码)
mysqldump -uroot -p123456 hfpet > test.sql
2. 导出整个数据库并设置编码(以utf8为例)
mysqldump -u root -p -- default-character-set=utf8 数据库名 > 文件名.sql
导入数据文件到数据库
1. source 命令
step1: 确保导入数据的目标数据库存在,如不存在的话, 新建一个就可以了。比如建一个test的数据库(create database test;)
step2: 方便操作,可以将.sql文件移到MySQL的bin目录。
step3: 切换到bin 目录
step4: 登录MYSQL: mysql -u root -p 。 需要输入密码
step5: use 目标数据库。 (as: use test;)
step6: 进入主题了. source test.sql;
2. mysql 命令
step1: 切换到Mysql 的 bin 目录
step2: mysql -u root -p 数据库名 > 文件名.sql
二:工具导入导出
MYSQL 官方有提供一个可视化的工具--MySQL Workbench,可以很方便的进行数据导入导出.
下载地址: --http://dev.mysql.com/downloads/workbench/5.2.html.
这个工具可以把一个database的每张table 都单独导成一份 .sql文件. 这个database,导入到一个文件夹。
看上去比较清晰。
导入也是一样,选文件夹就可以了。
三: 批处理方式导入导出
这里介绍在windows下面的状况。 如果是linux下的话, 写B shell, C shell 脚本就可以了。
在windows 写bat 脚本。
如果有多个.sql 需要导入的话, 可以把这些.sql 文件放在一个文件夹下,使用批处理命令,循环文件夹,导入各个 .sql.
贴个实例:
for /R "D:\dump201202" %%s in (*.sql) do (
echo %%s
"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe" -uroot -p123456 databaseName < %%s
)
文件命名成 .bat 。 进入cmd 执行就可以了。
导入文件大小限制问题的解决:
默认情况下:mysql 对导入文件大小有限制的,最大为2M,所以当文件很大时候,
直接无法导入,下面就这个问题的解决列举如下:
1.在php.ini中修改相关参数:
影响mysql导入文件大小的参数有三个:
memory_limit=128M,
upload_max_filesize=2M,
post_max_size=8M
修改upload_max_filesize=200 M 这里修改满足你需要的大小,
可以同时修改其他两项memory_limit=250M post_max_size=200M
这样就可以导入200M以下的.sql文件了
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt databse > d4.sql
带语言参数导入
mysql -uroot -ppasspass --default-character-set=utf8 databaseName <d:bakcup.sql