在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看:
mysqldump
最常用的:
mysqldump -u root -proot db_cetv table1 table2 > foo.sql
这样就可以将数据库db_cetv的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数
eg:
mysqldump-u root -proot db_cetv > D:\db_cetv.sql
这个就将db_cetv 导出在D盘的根目录 。。。
mysql的数据较大数据库的导入(这个要比source导入要快)如:
window下cmd: mysql -u root -proot db_cetv < D:\db_cetv.sql
这样就可以将db_cetv.sql的数据全部导入数据库db_cetv
1.导出整个数据库
mysqldump -u 用户名 -p密码 数据库名 > 导出的文件名
C:\Users\sun> mysqldump -u root -proot db_cetv> e:\db_cetv.sql
2.导出一个表,包括表结构和数据
mysqldump -u用户名 -p 密码 数据库名 表名> 导出的文件名
C:\Users\sun> mysqldump -u root -proot db_cetv t_users> e:\users.sql
3.导出一个数据库结构( -d 指令, 可以在cmd内, 输入mysqldump --help 查看了解一下)
C:\Users\sun> mysqldump -u root -proot -d db_cetv > e:\db_cetv_d.sql
4.导出一个表,只有表结构
mysqldump -u 用户名 -p 密码 -d数据库名 表名> 导出的文件名
C:\Users\sun> mysqldump -u root -proot -d db_cetv db_users > e:\db_cetv_users_d.sql
5.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:/db_cetv.sql
好了,总结一下。
1:(看一下文件有哪些不同处,除了 mysql 和mysqldump之外 , 还有 导出是 >小于号 ,导入是< 大于号,呵呵,希望别混了)
导入:mysql -u root -proot db_cetv < D:/db_cetv.sql
导出:①mysqldump -u root -proot db_cetv >D:/db_cetv.sql
以上两种都是 速度较快的导入导出
另一个导入方式:
②cmd进入
mysql -u root -proot(登入mysql)
use 你的数据库名(如果数据库不在,先创建 语句:create database 库名 charset=utf8;)
sourcesql所在路径
回车
以下(网摘)了一部分
MySQL导出的SQL语句在导入时有可能会非常非常慢,在处理百万级数据的时候,可能导入要花几小时。在导出时合理使用几个参数,可以大大加快导 入的速度。
-e 使用包括几个VALUES列表的多行INSERT语法;
--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;
--net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。
注意:max_allowed_packet 和 net_buffer_length 不能比目标数据库的设定数值 大,否则可能出错。
首先确定目标数据库的参数值
mysql> show variables like 'max_allowed_packet';
mysql> show variables like 'net_buffer_length';
根据参数值书写 mysqldump 命令,如:
# mysqldump -uroot -p123 21andy -e --max_allowed_packet=16777216 --net_buffer_length=16384 > 21andy.sql
OK,现在速度就很快了,主要注意的是导入和导出端的 max_allowed_packet 和 net_buffer_length 这2个参数值设定,弄大点就OK了
其实,最快的方法,是直接COPY数据库目录,不过记得先停止 MySQL 服务