免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1623 | 回复: 8
打印 上一主题 下一主题

mysql 在perl 里的设置求助! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-25 01:05 |只看该作者 |倒序浏览
大侠们好:

本人原有一服务器在托管,但因最近几年没有生意,因此决定放弃托管(4000一年),改为租用虚拟主机。
这家虚拟主机也是linux,广告说支持perl及mysql,因此定了他们的服务。但是已经过了两个多星期,仍然无法把perl与mysql连上。他们的技术服务说1.现在没有人用perl,其实是他们不懂perl,因此一直拖着没给答案。

我写了一个简单的程序,但是走到 DBI->connect($DSN,$user,$psw); 这步时就没消息了,下面是此测试程序:

http://gary4096.host.uniwan.cn/cgi/test_mysql.cgi

为了方便大侠们可以从web快速打开查看,文本重复放在下面:
http://gary4096.host.uniwan.cn/test_mysql.txt

程序就是几句,不知道什么地方需要修改,请大侠们不吝帮看看。谢谢!
另外,如果需要深入研究,我的帐户及密码如下:

恭喜您的虚拟主机开通成功,以下是您的资料:
用户管理界面:
http://www.uniwan.cn/hostasp.asp
用户名:gary4096
密码: jjiii555

您的FTP地址是:        h.souidc.com
您的FTP用户名:        gary4096
您的FTP密码是:        4F8027421A3c9a
您的网址为:        http://gary4096.host.uniwan.cn
服务器IP是:        211.154.132.56 220.112.46.56

数据库用户名:a0507212830
数据库密码:139693
数据库名称:a0507212830
数据库所在IP:211.154.132.56
所用的连接端口:3306


论坛徽章:
0
2 [报告]
发表于 2013-05-25 10:00 |只看该作者
不能use DBI; 不就说明问题了吗?
如果服务器用很旧版本的Perl的话,默认是不带DBI的。
当然,即使是新版本,默认也不带 DBD::Mysql 的。
所以需要服务器上装适当的模块,不然肯定不能用啦。

论坛徽章:
1
辰龙
日期:2014-05-15 19:37:15
3 [报告]
发表于 2013-05-25 19:12 |只看该作者
回复 1# gary4096
我认为你买个 Linode 的 vps 和阿里云的云服务器都会比这个简单。


   

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
4 [报告]
发表于 2013-05-26 00:03 |只看该作者
虚拟主机还想搞perl?在国内很少吧。

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
5 [报告]
发表于 2013-05-27 00:17 |只看该作者
Strange 发表于 2013-05-25 06:00
不能use DBI; 不就说明问题了吗?
如果服务器用很旧版本的Perl的话,默认是不带DBI的。
当然,即使是新版 ...

学习..~

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
6 [报告]
发表于 2013-05-27 00:19 |只看该作者
回复 2# Strange


    我从来没遇到过默认安装DBI的。。。。你在哪遇到过的?
   

论坛徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34
7 [报告]
发表于 2013-05-27 10:47 |只看该作者
程序或者脚本出了问题
1.看报错信息,根据错误提示定位错误
2.如果启动程序什么都没有发生
    a.除非作者知道脚本的行为
    b.如果不知道脚本在干嘛,果断ctrl+c,在有可能出现问题的函数或者判断的前中后加入print
3.如果程序脚本执行后出现了一个自己不想看到的运行结果,请检查所有涉及到的参数在数据流中的变化。可以使用断点调试或者打印出计算结果
4.如果定位到是调用的包或者包中调用的函数出了问题,请仔细阅读说明文档以及源码。
5.超出了自己能力以及理解范围,果断百度,或者找个社区发帖求助

楼主你单写个链接数据库的脚本,看看有没有问题
我这里链接没有问题 运行结果返回了test1是不是你测试库中的表名呢?
  1. use DBI;
  2. use strict;

  3. my @a0507212830 = ("a0507212830","211.154.132.56","3306","a0507212830","139693");
  4. my $sql = "SHOW TABLES from a0507212830";
  5. my @plantable_info = &operate_mysql(@a0507212830,"$sql","select");
  6. print "$_\n" for(@plantable_info);

  7. sub operate_mysql
  8. {
  9.         #&operate_mysql(@db_name,"$sql_word","select|insert");
  10.         my @parameter = @_;
  11.         my $control = $parameter[6];
  12.         my $dbname = $parameter[0];
  13.         my $location = $parameter[1];
  14.         my $port = $parameter[2];
  15.         my $database = "DBI:mysql:$dbname:$location:$port";
  16.         my $db_user = $parameter[3];
  17.         my $db_pass = $parameter[4];
  18.         my $dbh = DBI->connect($database,$db_user,$db_pass);
  19.         my $sql_word = $parameter[5];

  20.         if ( $control eq "select" ){
  21.                 my $sth = $dbh -> prepare($sql_word);
  22.                 $sth -> execute() or print $dbh->errstr;
  23.                 my @result ;
  24.                 while (my @value = $sth -> fetchrow_array){
  25.                         push @result, @value;
  26.                         #print "value : @value\n";
  27.                 }
  28.                 return @result;
  29.         }
  30.         if ( $control eq "insert" ){
  31.                 my $sth = $dbh -> prepare($sql_word);
  32.                 $sth -> execute() or print $dbh->errstr;
  33.         }
  34. }
复制代码

论坛徽章:
0
8 [报告]
发表于 2013-05-29 08:18 |只看该作者
回复 6# 墨迹哥


    debian 6, centos 5, gentoo, macos 等等都带了

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
9 [报告]
发表于 2013-05-29 08:52 |只看该作者
回复 8# Strange


    虚拟主机和虚拟服务器不是一回事
   虚拟主机只是虚拟了一些服务(比如http,ftp,mysql),而不是虚拟操作系统
   至于http能不能连上mysql,得看服务提供商了
   一般主机默认会有php,asp的mysql驱动
   perl不一定会有,可以要求管理员安装(如果他们号称可以同时支持perl和mysql)

   不过你有ftp权限,应该也可以上传一个到自己的目录空间
   就是麻烦点吧
   类似非root权限安装perl模块,而且还要用免安装模式
   我想到的
   你在本地装个虚拟机,一样的操作系统,mysql也要一样的目录
    用非root用户安装DBI和DBD::mysql,肯定还会用到其它的模块
     安装好以后打包ftp传上去
   后续说不定还有环境变量的问题,还没有telnet/ssh服务,

   现在云主机这么便宜
   还是考虑换个云主机吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP