Mysql用服务器用mysql命令指定格式导出数据

1.mysql服务器连接本地数据库报错

[bdp@host7 smart-test]$ mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

添加mysql.sock文件路径连接

[bdp@host7 smart-test]$ mysql -uroot -proot -S/mysql/mysql5.6/data/mysql.sock
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2411652
Server version: 5.6.13-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;

比较完整的命令:

mysql -h10.45.47.7 -Dsmart_prod -uroot -proot -P3306 -S/mysql/mysql5.6/data/mysql.sock

2.查看mysql --help命令,常用参数命令

3.以指定字符串竖线分割导出txt文本 

      用的是select  into outfile的方法

#!/bin/bash
#服务器域名
hostname="10.45.47.18"; 
#数据库名
dbname="smart";
#用户名
user="root";
#密码
password="root";
#端口号
prot="3306";
#scok文件所在路径,可以在安装目录的 /mysql/mysql5.6/my.cnf 查看
mysqlSock="/mysql/mysql5.6/data/mysql.sock";
#生成文件所在目录
fileDir="/home/weblogic/smart/testMysqlExport/";
#导出标签生成文件名,注意date后面空格不省略
fileName="injection_label_`date +%Y%m%d%H%M`.txt";
labelValueFileName="injection_label_value_`date +%Y%m%d%H%M`.txt";
#标签全路径=生成文件所在目录+文件名
fullPathFileName="${fileDir}${fileName}";
#标签值全路径=生成文件所在目录+文件名
labelValueFullPathFileName="${fileDir}${labelValueFileName}";
#表名
tableName="injection_label";

#目标主机信息
ftpIp="10.45.47.66";
ftpUser="bdp";
ftpPassword="bdp123";
ftpDir="/home/bdp/smarttest/injectionLabel/";

#若文件存在,则删除文件
if [ -f ${fullPathFileName} ]; then
    rm ${fullPathFileName}
fi
 
#创建文件
TIME1=$(date "+%Y-%m-%d %H:%M:%S") 
echo -e "\n\n========================"${TIME1}" start handle!\n"
echo -e '-h'${hostname} '-P'${prot} '-u'${user} '-p'${password} '-D'${dbname} '-e"'${sqlstr}'"', 
#从数据库promotion中读取cateWhiteList表信息--skip-column-names:去掉表头信息
#mysql -h${hostname} -P${prot} -u${user} -p${password} -S /mysql/mysql5.6/data/mysql.sock << EOF
mysql -h${hostname} -D${dbname} -u${user} -p${password} -P${prot} -S${mysqlSock} << EOF
    use ${dbname}; 
SELECT
    'injectionLabelId',
    'injectionLabelCode',
    'injectionLabelName',
    'injectionLabelDesc',
    'labelManageType',
    'labelType',
    'labelValueType',
    'labelDataType',
    'relevantFlag',
    'statusCd',
    'createStaff',
    'updateStaff',
    'createDate',
    'statusDate',
    'updateDate',
    'remark',
	'actionType',
	"tableCode",
	"orderId"
	
UNION
SELECT
    a.INJECTION_LABEL_ID,
    a.INJECTION_LABEL_CODE,
    a.INJECTION_LABEL_NAME,
    a.INJECTION_LABEL_DESC,
    NULL,
    a.LABEL_TYPE,
    a.LABEL_VALUE_TYPE,
    a. LABEL_DATA_TYPE,
    NULL,
    a.STATUS_CD,
    a.CREATE_STAFF,
    a.UPDATE_STAFF,
    a.CREATE_DATE,
    a.STATUS_DATE,
    a.UPDATE_DATE,
    a.REMARK,
	b.CHANGE_TYPE,
	b.table_code,
	null
FROM
    injection_label a
	join data_change_log b on a.INJECTION_LABEL_ID = b.DATA_ID
	where b.is_syn_bss =0
	and b.table_code='INJECTION_LABEL'
into outfile "${fullPathFileName}" fields terminated by '|' lines terminated by '\\n';
SELECT
    "labelValueId",
    "injectionLabelId",
    "labelValue",
    "valueName",
    "valueDesc",
    "statusCd",
    "createStaff",
    "updateStaff",
    "createDate",
    "statusDate",
    "updateDate",
    "remark",
    "actionType"
	
UNION
SELECT
    a.LABEL_VALUE_ID,
    a.INJECTION_LABEL_ID,
    a.LABEL_VALUE,
    a.VALUE_NAME,
    a.VALUE_DESC,
    a.STATUS_CD,
    a.CREATE_STAFF,
    a.UPDATE_STAFF,
    a.CREATE_DATE,
    a.STATUS_DATE,
    a.UPDATE_DATE,
    a.REMARK,
	c.CHANGE_TYPE
FROM
    injection_label_value a
	join injection_label b  on a.INJECTION_LABEL_ID = b.INJECTION_LABEL_ID
    join data_change_log c on b.INJECTION_LABEL_ID=c.DATA_ID
	where c.is_syn_bss =0
into outfile "${labelValueFullPathFileName}" fields terminated by '|' lines terminated by '\\n';

UPDATE data_change_log 
	set is_syn_bss=1
	where is_syn_bss=0 and TABLE_CODE='INJECTION_LABEL';
EOF
if [ $? -ne 0 ]; then
    echo "读取表失败"
    exit 1
fi
 
#推送文件
ftp -v -n<<!
open $ftpIp
user $ftpUser $ftpPassword
binary
cd $ftpDir
lcd ${fileDir}
prompt
mput ${fileName} ${labelValueFileName}
bye
!

echo "推送标签增量文件成功"
rm  ${fullPathFileName}  ${labelValueFullPathFileName}
##echo "清空本地文件成功"

3.远程主机导出数据并入库

     注意:乱码设置,还有如果是查询导出默认行数为1000,可以通过select_limit设置行数据,default-character-set设置编码。

#!/bin/bash
#引入服务器编码为utf-8
#export NLS_LANG="AMERICAN_AMERICA.UTF8"
#服务器域名
hostname="10.45.47.7"; 
#数据库名
dbname="smart_prod"; 
#用户名
user="root";
#密码
password="root";
#端口号
prot="3306";
#scok文件所在路径
mysqlSock="/mysql/mysql5.6/data/mysql.sock";
#生成文件所在目录
fileDir="/home/weblogic/smart/testMysqlExport/";

#服务器域名
bssHostname="10.45.46.20"; 
#数据库名
bssDbname="marking"; 
#用户名
bssUser="bss30";
#密码
bssPassword="1qaz@wsX ";
#端口号
bssProt="8890";


#创建文件
TIME1=$(date "+%Y-%m-%d %H:%M:%S") 
echo -e "\n\n========================"${TIME1}" 开始导出数据!\n"

mysql -h${bssHostname} -P${bssProt} -u${bssUser} -p${bssPassword} -D${bssDbname} --default-character-set=utf8 --select_limit=99999 -N -e"SELECT MKT_CAMPAIGN_ID,TIGGER_TYPE,MKT_CAMPAIGN_NAME,PLAN_BEGIN_TIME,PLAN_END_TIME,BEGIN_TIME,END_TIME,MKT_CAMPAIGN_TYPE,MKT_ACTIVITY_NBR,MKT_ACTIVITY_TARGET,MKT_CAMPAIGN_DESC,STATUS_CD,STATUS_DATE,CREATE_STAFF,CREATE_DATE,UPDATE_STAFF,UPDATE_DATE,REMARK,LAN_ID,MKT_CAM_CATE_ID,MKT_CAM_LEVEL,IS_PARENT_CAM,MANAGE_TYPE,EXEC_TYPE,EXEC_INVL,EXEC_NUM,MKT_CAM_EXEC_LEVEL,SERVICE_TYPE,EXT_MKT_CAMPAIGN_ID,REGION_ID FROM mkt_campaign" > ${fileDir}mkt_campaign.txt;
mysql -h${bssHostname} -P${bssProt} -u${bssUser} -p${bssPassword} -D${bssDbname} --default-character-set=utf8 --select_limit=99999 -N -e"SELECT EVT_RECOM_CALC_REL_ID,MKT_CAMPAIGN_ID,ALGO_ID,ALGORITHMS_RUL_ID,PRIORITY,STATUS_CD,CREATE_STAFF,UPDATE_STAFF,CREATE_DATE,UPDATE_DATE,STATUS_DATE,REMARK,STRATEGY_ID FROM mkt_cam_recom_calc_rel" > ${fileDir}mkt_cam_recom_calc_rel.txt;
mysql -h${bssHostname} -P${bssProt} -u${bssUser} -p${bssPassword} -D${bssDbname} --default-character-set=utf8 --select_limit=99999 -N -e"SELECT ALGO_ID,ALGO_CODE,ALGO_NAME,HANDLE_CLASS,ALGO_DESC,STATUS_CD,STATUS_DATE,CREATE_STAFF,CREATE_DATE,UPDATE_STAFF,UPDATE_DATE,REMARK,EXT_ALGO_ID FROM mkt_algorithms limit 999999" > /home/weblogic/smart/testMysqlExport/mkt_algorithms.txt;
mysql -h${bssHostname} -P${bssProt} -u${bssUser} -p${bssPassword} -D${bssDbname} --default-character-set=utf8 --select_limit=99999 -N -e"SELECT ALG_RUL_RELA_ID,MKT_CAMPAIGN_ID,ALGORITHMS_RUL_ID,STATUS_CD,CREATE_STAFF,UPDATE_STAFF,CREATE_DATE,STATUS_DATE,UPDATE_DATE,REMARK FROM cpc_alg_rul_detail_rela" > ${fileDir}cpc_alg_rul_detail_rela.txt;
mysql -h${bssHostname} -P${bssProt} -u${bssUser} -p${bssPassword} -D${bssDbname} --default-character-set=utf8 --select_limit=99999 -N -e"SELECT ALGORITHMS_RUL_ID,TAR_GRP_ID,ITEM_ID,CONTACT_CHL_ID,PRIORITY,STATUS_CD,CREATE_STAFF,UPDATE_STAFF,CREATE_DATE,STATUS_DATE,UPDATE_DATE,REMARK,STRATEGY_ID FROM cpc_alg_rul_detail" > ${fileDir}cpc_alg_rul_detail.txt;
mysql -h${bssHostname} -P${bssProt} -u${bssUser} -p${bssPassword} -D${bssDbname} --default-character-set=utf8 --select_limit=99999 -N -e"SELECT EVENT_ID,INTERFACE_CFG_ID,EVENT_NBR,EVENT_NAME,EVT_MAPPED_ADDR,EVT_MAPPED_IP,EVT_PROCOTOL_TYPE,EVT_MAPPED_FUN_NAME,EVENT_DESC,EVT_TYPE_ID,EVENT_TRIG_TYPE,STATUS_CD,CREATE_STAFF,UPDATE_STAFF,CREATE_DATE,STATUS_DATE,UPDATE_DATE,REMARK,CONTACT_EVT_TYPE,IS_ORIG_EVENT,LOGO_URL,EXT_EVENT_ID,TRIG_RUN_PERIOD,TRIG_CYCLE_VALUE,TRIG_RUN_TIME,NEXT_RUN_TIME FROM event" > ${fileDir}event.txt;
mysql -h${bssHostname} -P${bssProt} -u${bssUser} -p${bssPassword} -D${bssDbname} --default-character-set=utf8 --select_limit=99999 -N -e"SELECT MKT_CAMP_EVT_REL_ID,MKT_CAMPAIGN_ID,EVENT_ID,STATUS_CD,STATUS_DATE,CREATE_STAFF,CREATE_DATE,UPDATE_STAFF,UPDATE_DATE,REMARK,LAN_ID,EXT_MKT_CAMP_EVT_REL_ID FROM mkt_cam_evt_rel" > ${fileDir}mkt_cam_evt_rel.txt;

#把数据导入到本地
mysql -h${hostname} -D${dbname} -u${user} -p${password} -P${prot} -S${mysqlSock} << EOF
use ${dbname}; 
truncate table mkt_campaign;
truncate table mkt_cam_recom_calc_rel;
truncate table mkt_algorithms;
truncate table cpc_alg_rul_detail_rela;
truncate table cpc_alg_rul_detail;
truncate table event;
truncate table mkt_cam_evt_rel;
load data infile '${fileDir}mkt_campaign.txt' into table mkt_campaign(MKT_CAMPAIGN_ID,TIGGER_TYPE,MKT_CAMPAIGN_NAME,PLAN_BEGIN_TIME,PLAN_END_TIME,BEGIN_TIME,END_TIME,MKT_CAMPAIGN_TYPE,MKT_ACTIVITY_NBR,MKT_ACTIVITY_TARGET,MKT_CAMPAIGN_DESC,STATUS_CD,STATUS_DATE,CREATE_STAFF,CREATE_DATE,UPDATE_STAFF,UPDATE_DATE,REMARK,LAN_ID,MKT_CAM_CATE_ID,MKT_CAM_LEVEL,IS_PARENT_CAM,MANAGE_TYPE,EXEC_TYPE,EXEC_INVL,EXEC_NUM,MKT_CAM_EXEC_LEVEL,SERVICE_TYPE,EXT_MKT_CAMPAIGN_ID,REGION_ID);
load data infile '${fileDir}mkt_cam_recom_calc_rel.txt' into table mkt_cam_recom_calc_rel(EVT_RECOM_CALC_REL_ID,MKT_CAMPAIGN_ID,ALGO_ID,ALGORITHMS_RUL_ID,PRIORITY,STATUS_CD,CREATE_STAFF,UPDATE_STAFF,CREATE_DATE,UPDATE_DATE,STATUS_DATE,REMARK,STRATEGY_ID);
load data infile '${fileDir}mkt_algorithms.txt' into table mkt_algorithms(ALGO_ID,ALGO_CODE,ALGO_NAME,HANDLE_CLASS,ALGO_DESC,STATUS_CD,STATUS_DATE,CREATE_STAFF,CREATE_DATE,UPDATE_STAFF,UPDATE_DATE,REMARK,EXT_ALGO_ID);
load data infile '${fileDir}cpc_alg_rul_detail_rela.txt' into table cpc_alg_rul_detail_rela(ALG_RUL_RELA_ID,MKT_CAMPAIGN_ID,ALGORITHMS_RUL_ID,STATUS_CD,CREATE_STAFF,UPDATE_STAFF,CREATE_DATE,STATUS_DATE,UPDATE_DATE,REMARK);
load data infile '${fileDir}cpc_alg_rul_detail.txt' into table cpc_alg_rul_detail(ALGORITHMS_RUL_ID,TAR_GRP_ID,ITEM_ID,CONTACT_CHL_ID,PRIORITY,STATUS_CD,CREATE_STAFF,UPDATE_STAFF,CREATE_DATE,STATUS_DATE,UPDATE_DATE,REMARK,STRATEGY_ID);
load data infile '${fileDir}event.txt' into table event(EVENT_ID,INTERFACE_CFG_ID,EVENT_NBR,EVENT_NAME,EVT_MAPPED_ADDR,EVT_MAPPED_IP,EVT_PROCOTOL_TYPE,EVT_MAPPED_FUN_NAME,EVENT_DESC,EVT_TYPE_ID,EVENT_TRIG_TYPE,STATUS_CD,CREATE_STAFF,UPDATE_STAFF,CREATE_DATE,STATUS_DATE,UPDATE_DATE,REMARK,CONTACT_EVT_TYPE,IS_ORIG_EVENT,LOGO_URL,EXT_EVENT_ID,TRIG_RUN_PERIOD,TRIG_CYCLE_VALUE,TRIG_RUN_TIME,NEXT_RUN_TIME);
load data infile '${fileDir}mkt_cam_evt_rel.txt' into table mkt_cam_evt_rel(MKT_CAMP_EVT_REL_ID,MKT_CAMPAIGN_ID,EVENT_ID,STATUS_CD,STATUS_DATE,CREATE_STAFF,CREATE_DATE,UPDATE_STAFF,UPDATE_DATE,REMARK,LAN_ID,EXT_MKT_CAMP_EVT_REL_ID);
EOF

#占位查询
#mysql -h${hostname} -P${prot} -u${user} -p${password} -D${dbname} -e"${sqlstr}"
if [ $? -ne 0 ]; then
    echo "数据导入失败"
    exit 1
fi

echo "导入cpc数据成功";
#rm  ${fullPathFileName}  ${labelValueFullPathFileName}
##echo "清空本地文件成功"

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值