博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyCAT与MySQL导入、导出文件
阅读量:6821 次
发布时间:2019-06-26

本文共 2098 字,大约阅读时间需要 6 分钟。

1. MySQL批量导入-LOAD DATA

使用本地客户端连接MySQL数据库,批量导入数据,出现报错:
2017-06-07 09:30:45,936 MySqlWrapper::ImportCSVtoDB ERROR 13:Can't get stat of '/opt/sdc/merge/WorkData/7374182833.csv' (Errcode: 2 - No such file or directory)
查询后得知,本地导数据需要添加local,修改导入SQL如下:
LOAD DATA LOCAL INFILE '/opt/sdb/test.csv'
INTO TABLE t_test
CHARACTER SET utf8
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';
另外注意,批量导入数据会产生大量无效bin-log,可以通过关闭log来避免:
set sql_log_bin=0;
导入结束后打开:
set sql_log_bin=1;
手动清楚bin-log日志:
purge master logs before '2017-06-07 17:07:00';
(删除某个时间点之前的日志)

2. MySQL批量导出-select into outfile

使用select导出数据需要注意,指定目录必须存在,且没有同名文件,MySQL导出的时候,不会覆盖重名文件,语法案例如下:
select *
from t_test into outfile
'/opt/wifidb/mysql_datatest.csv'
fields terminated by ','
optionally enclosed by ''
LINES TERMINATED BY '\n';

3. 利用mysqldump导出sql

MySQL支持mysqldump导出整个数据库结构和数据库数据,代码如下:
1、导出数据库为dbname的表结构(其中用户名为root,密码为dbpasswd,生成的脚本名为db.sql)
mysqldump -uroot -pdbpasswd -d dbname >db.sql;
2、导出数据库为dbname某张表(test)结构
mysqldump -uroot -pdbpasswd -d dbname test>db.sql;
3、导出数据库为dbname所有表结构及表数据(不加-d)
mysqldump -ucellDB -p -h172.16.2.01 -P3309 db631 >/opt/data/mysql_data/db1.sql
4、导出数据库为dbname某张表(test)结构及表数据(不加-d)
mysqldump -uroot -pdbpasswd dbname test>db.sql;

4.导入SQL文件

首先确保MySQL里面有存在该数据库,导入案例如下:
MySQL -uroot -p123456123 -h172.16.2.01 -P3308 db1 < /opt/data/mysql_data/db1.sql;

5.MyCAT批量导入数据-Load Data

MyCAT的批量导入与MySQL相似,不同的是,MyCAT导入的时候需要明确指出列名,便于分片插入,否则会报lost connection的错误。案例如下:
LOAD DATA LOCAL INFILE '/opt/data/mysql_data/test.csv' ignore
INTO TABLE t_test
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(i_ID, i_MAC, i_RSSI, i_Grid);

6. MyCAT批量导入数据-source sql

MyCAT的也支持source sql文件。与MySQL不同的是,导入到mycat的sql文件需要携带columnslist,所以在导出时,mysqldump命令如下:
mysqldump -uroot -p123456 -h172.16.2.01 -P3308 -c --skip-add-locks db1 t_test > /opt/data/mysql_data/buffer.sql
注意加粗字段。与此同时,导入导出的表名要一致。
这种办法可以用于MyCat迁移数据的使用。

7. MyCAT批量导出--select into outfile

MyCAT实质为SQL parser,select会下发到每个数据节点。如果每台机器上有两个数据节点,那么导出时就会报错。建议到每一个数据节点下导出数据再拼接起来

转载于:https://www.cnblogs.com/AndersonX/p/8696397.html

你可能感兴趣的文章
Custom TabBarController
查看>>
MKSocialShareTableViewCell
查看>>
AngleGradientLayer
查看>>
用Myeclipse创建PhoneGap应用程序
查看>>
开源 java CMS - FreeCMS2.8 站内信
查看>>
kubeadm初始化kubernetes cluster的一点经验
查看>>
ZooKeeper应用案例
查看>>
springboot(二):thymeleaf模板开发
查看>>
Android Bluetooth HID实现详解
查看>>
高通camera架构
查看>>
PHP运行模式
查看>>
leetcode Remove Duplicates from Sorted Array
查看>>
spring cloud 与dubbo
查看>>
Linux零拷贝函数SendFile应用
查看>>
linux下创建文件或文件夹快捷方式一个简单地方法
查看>>
SDPhotoBrowser图片浏览器
查看>>
php 使用DOMDocument 解析xml
查看>>
如何7步实现根据源码包创建rpm包
查看>>
hadoop2.0集群搭建详解
查看>>
java调用oracle存储过程
查看>>