mysql导数据小结

查询结果导出:

脚本中执行

方式一:

mysql -h xxx -uxxx -pxxx -P 3306 -D db_name -e "select * from mblog_info order by mid desc limit 10"  > data.txt

 

方式二:

mysql -h xxx -uxxx -pxxx -P 3306 -D db_name < test.sql > data.txt

 

导出数据库数据

mysqldump -uroot -p dp_db > dumpout.sql

 

 

导入数据

向dp_db_bak数据库导入数据

   mysql -uroot -p dp_db_bak  --default-character-set=utf8  -f< ~/dumpout.sql

-f:fource忽略错误

P.S. 如果在导入导出数据的时候遇到文件太大异常退出的情况,可使用split/cat来进行文件的分割和合并

   mysqldump -uroot -p dp_db | split -b 10m - tempfile

   cat all_tempfile > targetfile

 

其他方法:

Mysql source命令在导入大数据时显得非常有用。虽然Mysql Administrator软件也不错,但就稳定性和效率性来说还是source占优。
使用方法:
Windows下将sql数据库备份拷贝到磁盘目录如:D:\db.sql,cmd进入命令行。
1、先使用命令mysql -uroot -p登陆mysql服务器
2、然后执行相关命令导入数据。

mysql> use dbtest; //设置当前要导入数据的dbtest数据库 
mysql> set names utf8; //设置编码 
mysql> source D:\db.sql; //导入数据

ok,完成。当然数据库备份用Mysql Administrator是非常方便的

 

mysql通过拷贝数据文件的方式进行数据库迁移

第三种方案的优点:时间占用短,文件可断点传输,操作步骤少。缺点:新旧服务器中MySQL版本及配置必须相同,可能引起未知问题。

注意:ibdata1一定不要忘记拷贝,且要拷贝到准确的位置

在Linux下也是类似的方式,但要注意拷贝完文件后,记得改下data文件夹owner为mysql

 

补充mysqldump

mysqldump完整参数

mysqldump -hlocalhost -P3307 -ubj -p123456 --tables zx site_result --skip-add-drop-table --no-create-info --where="auto_id >9014827"  --default-character-set=utf8> ./ste_result.sql

老版本:

mysqldump -h localhost -P3307 -u root -p123456 zx  site_result -t  -w"auto_id >9014827" --complete-insert --skip-extended-insert  --no-autocommit --default-character-set=utf8 > ./ste_result.sql


--skip-lock-table  跳过锁表

如果只需要导出表的结构,那么可以使用mysqldump的 -d 选项

mysqldump -uroot -p -d databasename > createtab.sql

mysqldump -uroot -p -d databasename test1 test2 test3 > createtab.sql

导出指定表结构和数据 可以使用mysqldump -tables

mysqldump -uroot -p --tables databasename > createtab.sql

有时间拆分导出结果,不想要默认带的drop,create等语句用--skip-option

--no-create-db,  ---取消创建数据库sql(默认存在)
--no-create-info,---取消创建表sql(默认存在)
--no-data         ---不导出数据(默认导出)
--add-drop-database ---增加删除数据库sql(默认不存在)
--skip-add-drop-table  ---取消每个数据表创建之前添加drop数据表语句(默认每个表之前存在drop语句)
--skip-add-locks       ---取消在每个表导出之前增加LOCK TABLES(默认存在锁)
--skip-comments        ---注释信息(默认存在)

如果只想根据查询条件导出部分数据 用--where

mysqldump -uroot -p123456 meteo sdata --where=" sensorid=11 and fieldid=0" > /home/xyx/Temp.sql

默认导出的数据是压缩格式

如果希望导入的是一条一条添加参数:--skip-extended-insert

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值