日期:2014-05-16 浏览次数:20544 次
在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看: 最常用的: 这样就可以将数据库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导入要快)如: 这样就可以将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 服务 |