使用DBI(perl)实现文本文件的导入导出mysql

DBI 是perl脚本连接数据库的一个模块。
perl脚本相对shell更灵活,功能更强大,跨平台能力强。相对可执行jar包要简单很多。

​1、下载安装包
DBI-1.631.tar.gz
perl脚本下载的网站http://www.cpan.org/
很多perl的组件都可以在这个网站上下载

2、解压
tar -xzvf DBI-1.631.tar.gz
cd DBI-1.631
perl Makefile.PL
make
make test

3、DBD安装
下载DBD-mysql-4.032.tar.gz (地址同1)
cd DBD-mysql-4.032
perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config
make
make test
make install

4、其它可能发生的状况
如果运行某个调用MYSQL数据库的程序时出现如下系统提示:
install_driver(mysql) failed: Can't load '/usr/lib/perl5/site_perl/5.6.1/i386-linux/auto/DBD/mysql/mysql.so' for module DBD::mysql: /usr/lib/perl5/site_perl/5.6.1/i386-linux/auto/DBD/mysql/mysql.so: undefined symbol: uncompress at /usr/lib/perl5/5.6.1/i386-linux/DynaLoader.pm line 206. at (eval 2) line 3
那么说明DBD::MYSQL未安装成功。
此时将/usr/local/mysql/include/mysql/*
复制到/usr/include/
同时将/usr/local/mysql/lib/mysql/*
复制到/usr/lib/(64位系统/usr/lib64/)
然后使用perl Makefile.PL设置环境,再进行后续的正常安装,就能正确连接到MYSQL数据库。

/** 32位系统的解决办法
cp -rp /usr/local/mysql/include/mysql* /usr/include/
cp -rp /usr/local/mysql/lib/* /usr/lib/
**/
5、导入导出脚本实例

导入
#!/usr/bin/perl
use strict;
use DBI;
my $dbh = DBI->connect("DBI:mysql:database=test;host=localhost", "root", "admin", {'RaiseError' => 1});
my $rows = $dbh->do("LOAD DATA LOCAL INFILE 'test_data.txt' INTO TABLE users FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n'");
print "$rows row(s) affected ";

参考
http://www.cnblogs.com/ggjucheng/archive/2012/11/05/2755683.html

导出:
#!/usr/bin/perl
use strict;
use DBI;
my $dbh = DBI->connect("DBI:mysql:database=test;host=localhost", "root", "admin", {'RaiseError' => 1});
my $rows = $dbh->do("select * from users into outfile '/tmp/test_out_data.txt' fields terminated by '\t' enclosed by '\"' lines terminated by '\n'");
print "$rows row(s) affected ";
参考:
http://www.cnblogs.com/wxb-km/archive/2012/10/23/2736394.html

转载于:https://www.cnblogs.com/mahyblog/p/4761526.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273025.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 车载视频监控,基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文.docx...

基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文目录HYPERLINK \l "_bookmark0" 第一章 绪论1 HYPERLINK \l "_bookmark1" 1.1 研究背景1 HYPERLINK \l "_bookmark2" 1.2 研究动态1 HYPERLINK \l "_bookmark3" 1.3 本文工…

Linux鼠标回报率修改,鼠标回报率怎么调? 设置鼠标回报率的三种方法

鼠标回报率如何设置呢?鼠标回报率又称刷新率,是指鼠标MCU与电脑传输数据频率。鼠标回报率对于游戏玩家而言至关重要,但同时鼠标回报率与电脑性能息息相关。只有电脑硬件性能良好,才能适当提升鼠标回报率,以实现更高的鼠…

linux下vi修改文件用法

进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi n filename :打开文件,并将光标置于第n行首 vi filename :打开文件,并将光标置于最后一行首 vi /pattern filename:打开文件&#xff…

linux在芯片设计与实现,基于Linux的Atheros无线芯片网卡驱动的设计与实现

Design and Implementation of Linux based Atheros wireless network cards driverDU Qingbo1杜清波(1985-),男,硕士研究生,主要研究方向:嵌入式系统与网络通信1、School of Computer Science,Beijing University of Posts and T…

[转载]孙婧妍:高考语文148分是这样炼成的(附:孙婧妍

原文地址:孙婧妍:高考语文148分是这样炼成的(附:孙婧妍2013高考作文《手机论》)作者: 语文新高考高考语文148分是这样炼成的 (附:孙婧妍2013高考作文《手机论》) 来源:网络 作者:孙婧妍…

linux ps 命令安装,Linux上安装pstree命令(-bash: pstree: command not found)

一、pstree命令的安装1、在Mac OS上brew install pstree2、在Fedora/Red Hat/CentOSyum -y install psmisc3、在 Ubuntu/Debianapt-get install psmisc二、pstree命令详解pstree指令用ASCII字符显示树状结构,清楚地表达程序间的相互关系。如果不指定程序识别码或用户…

c语言字符串逆置,字符串逆置

满意答案9n7j5j3m4o2013.12.03采纳率:49% 等级:11已帮助:15198人47911 zxl0714 1358 Accepted 164K 15MS G 0.46K 2007-04-08 10:32:38#include using namespace std;void reverse(char* ch){int i, len;char tmp;len strlen( ch );for (…

哈夫曼编码c语言论文,哈夫曼编码的实现及应用论文.doc

哈夫曼编码的实现及应用论文毕 业 设 计(论文)题目 哈夫曼编码的实现及应用二级学院 数学与统计学院专 业 信息与计算科学班 级学生姓名 张泽欣 学号指导教师 职称时 间目录摘要IAbstractII第一章 绪论11.1 研究目的及意义11.2 图像压缩编码技术概述21.2.1 图像压缩编码技术分类…

css笔记3

CSS 多类选择器,通过把两个类选择器链接在一起&#xff0c;仅可以选择同时包含这些类名的元素&#xff08;类名的顺序不限&#xff09;。 <p class"important warning"> This paragraph is a very important warning. </p>.important {font-weight:bold;…

java保留有效数字

1 在处理数值运算的时候&#xff0c;有时候会遇到保留几位小数的需求&#xff0c;下面是一个保留两位小数的简单方法。2 /**3 * 将数据保留两位小数4 */5 privatedoublegetTwoDecimal(doublenum) {6 DecimalFormatdFormatnewDecimalFormat("#.00"…

C语言algorithm主函数,C语言中主函数中相关有关问题?

C语言中主函数中相关问题&#xff1f;&#xff1f;&#xff1f;#include #include #include #include #include #include #include #include #include using namespace std;int mp[20][20], b[20], max1, n;struct node{int a[15], top, ans, x;};void bfs(){int i, j, x;queue…

【Android基础】Fragment 详解之Fragment介绍

Fragment在Android 3.0&#xff08; API 11&#xff09;引入&#xff0c;是为了支持在大屏上显示更加动态、灵活的UI&#xff0c;比如在平板和电视上。Fragment可以看作是嵌套的Activity&#xff0c;类似ActivityGroup&#xff0c;但是开销肯定没有ActivityGroup那么大&#xf…

c语言统计数据,数据统计

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include void input(float score[10][5]);void average(float aver[]);void course(float cour[]);float score[10][5],aver[10],cour[5];int i,j;void main(){printf("please input the scores of all the students\n"…

传递闭包c语言算法解析,找关系的传递闭包 用c语言编 一个关系的传递闭包

为什么叫传递闭包&#xff1f;&#xff1f;有什么特殊含义&#xff1f;&#xff1f;设R是X上的二元关系&#xff0c;如果另一个关系R1满足&#xff1a;R1是传递的&#xff0c;R是R1的子集&#xff0c;对于任何可传递关系R11如果有R是R11的子集&#xff0c;就有R1是R11的子集。则…

linux之cp/scp命令+scp命令详解

命令&#xff1a;cp 使用权限&#xff1a;所有使用者 使用方式&#xff1a; cp [options] source dest cp [options] source... directory 说明&#xff1a;将一个档案拷贝至另一档案&#xff0c;或将数个档案拷贝至另一目录。 把计 -a 尽可能将档案状态、权限等资料都照原状予…

linux安装mq报5724,linux下MQ简单配置手册.doc

精品消息发送涉及到的队列及通道示意图&#xff1a;定义发送方为A&#xff0c;接收方为B&#xff0c;下面是建立A向B发送消息的单向配置。发送方A的配置1. 在发送方A创建队列管理器QM_A&#xff1a;[[email protected] ~]$ crtmqm -q QM_A成功后会有如下提示&#xff1a;There …

asp.net MVC控制器中返回JSON格式的数据时提示下载

Asp.net mvc在接收的是JSON格式的数据&#xff0c;但是奇怪的是在IE中提示下载文件&#xff0c;其他浏览器中一切正常&#xff0c;下载后&#xff0c;里面的内容就是在控制器中返回的数据。代码如下&#xff1a; 视图中js代码&#xff1a; $("#form").ajaxSubmit({ …

linux postfix 搭建,linux 下搭建postfix服务器

linux 下postfix邮箱的安装linux一、首先关闭sendmail服务service sendmail stop二、chkconfig sendmail off(关闭开机自启动)三、修改DNS正解文件&#xff0c;使DNS可以解析邮箱服务添加下面两行mail.zhubf.com. IN A 172.17.17.2zhubf.com. IN MX 10 …

两个链表的第一个公共结点-输入两个链表,找出它们的第一个公共结点。

1、蛮力法&#xff1a; 1 /*2 struct ListNode {3 int val;4 struct ListNode *next;5 ListNode(int x) :6 val(x), next(NULL) {7 }8 };*/9 class Solution { 10 public: 11 ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHe…

android 飞框动画,AndroidTV中实现飞框选中效果

相信很多从事AndroidTV开发的朋友都对如何展示item的选中效果感到苦恼&#xff0c;电视端开发与移动端最大的不同是用户只能通过一个遥控器进行控制(当然如果你的电视是触屏的话除外……)&#xff0c;在这个时候&#xff0c;我们需要让用户知道当前选中的到底是哪一个项目&…