免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1478 | 回复: 8

求助~~关于连接mysql [复制链接]

论坛徽章:
0
发表于 2013-07-22 12:34 |显示全部楼层
本帖最后由 huangxiaohen 于 2013-07-22 12:37 编辑

在家里好用,换了台电脑就不好用了。这是为什么呢??而且prepare也不能用了。。。
DBI connect('bbs_url:localhost','root',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at spider.pl line 13
Can't call method "prepare" on an undefined value at spider.pl line 23.
  1.   7 my $dbname = "bbs_url";
  2.   8 my $location = "localhost";
  3.   9 my $port = "3306";
  4. 10 my $database = "DBI:mysql:$dbname:$location";
  5. 11 my $db_user = "root";
  6. 12 my $db_pass = "root";
  7. 13 my $dbh = DBI->connect($database,$db_user,$db_pass);

  8. my $sth=$dbh->prepare("$sql");

复制代码

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
发表于 2013-07-22 12:40 |显示全部楼层
尝试下重启数据库服务。service mysqld restart

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
发表于 2013-07-22 12:42 |显示全部楼层
而且给你一个我以前写的例子,你研究下是不是哪写错了?
  1. #!/usr/bin/perl

  2. #set module
  3. use DBI;

  4. #scanf the mysqluser
  5. print "请输入mysql帐号:\n";
  6. chomp($mysql_n=<STDIN>);
  7. print "请输入mysql密码:\n";
  8. chomp($mysql_p=<STDIN>);
  9. print "请输入需要连接的数据库:\n";
  10. chomp($mysql_d=<STDIN>);
  11. print "请输入需要插入的用户数据:\n";
  12. chomp($user_n=<STDIN>);
  13. print "请输入需要插入的密码数据:\n";
  14. chomp($user_p=<STDIN>);
  15. print "请输入需要插入的电话数据:\n";
  16. chomp($user_t=<STDIN>);
  17. print "请输入需要插入的工龄数据:\n";
  18. chomp($user_y=<STDIN>);


  19. #connect mysql
  20. my $in=DBI->connect("DBI:mysql:database=$mysql_d;host=localhost","$mysql_n","$mysql_p") or die "FUCK no do it!!!\n";
  21. #insert tables
  22. my $insert=$in->do("insert into people(username,password,number,year)values('$user_n','$user_p',$user_t,$user_y)");

  23. #select databases;
  24. my $select=$in->prepare("select username,password from people");
  25. $select->execute();

  26. #print the list
  27. while(my $list=$select->fetchrow_hashref()){
  28.   print "$list->{'username'}\t";
  29.   print "$list->{'password'}\t";
  30.   print "$list->{'number'}\t";
  31.   print "$list->{'year'}\t";
  32. }
  33. print "\n";
  34. #close mysql
  35. $in->disconnect();
复制代码

论坛徽章:
0
发表于 2013-07-22 21:44 |显示全部楼层
telnet 127.0.0.1 3306 看看本机DB是否正常

论坛徽章:
0
发表于 2013-07-23 16:28 |显示全部楼层
回复 4# wenxin1234114


   正常啊。以前也有这情况也忘了做什么了就可以使了,这次怎么也不好使。。。在家可以跑,换台机器就不ok了。。。

论坛徽章:
1
2015亚冠之阿尔纳斯尔
日期:2015-11-11 18:05:28
发表于 2013-07-24 14:58 |显示全部楼层
是不是本机要装mysql-devel

论坛徽章:
0
发表于 2013-07-24 15:21 |显示全部楼层
回复 6# kaixin9ok
我在家就装了个Mysql,在别的机器装的一模一样的mysql,一样的代码。就是跑不了```` 郁闷


   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-07-24 15:36 |显示全部楼层
huangxiaohen 发表于 2013-07-24 15:21
回复 6# kaixin9ok
我在家就装了个Mysql,在别的机器装的一模一样的mysql,一样的代码。就是跑不了```` 郁 ...

什么叫“一模一样的mysql“?
防火墙设置一样吗?mysql版本一样吗?端口一样吗?数据库用户权限一样吗?socket文件位置一样吗?my.cnf中的设置一样吗?

btw. 报错写的很清楚了。

论坛徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34
发表于 2013-07-24 15:39 |显示全部楼层
如果是换了环境出问题 主要还是排查一下环境是否安装正确
看看mysql的inner engine安装是否到位,试试用客户端是否能正常链接mysql,手动下sql是否正常。
再检查perl环境的dbi是否安装,是否安装到位,建议用cpan自动安装
最后在看下sql的格式语法是否正确,还有perl的语法是否正确
基本就这点
要不你贴下完成的脚本来看看吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP