草庐IT

mysql - AnyEvent::DBI 和数据库重新连接

我在单例包中使用AnyEvent::DBI,当数小时后数据库/查询等中没有事件时,我在尝试发出查询时收到此错误:DBD::mysql::stexecutefailed:MySQLserverhasgoneawayat/usr/local/share/perl/5.10.1/AnyEvent/DBI.pmline98.一个简单的方法是:连接到数据库==>发出查询==>关闭连接。这种方式是我在使用DBI时通常使用的方式。我的问题是我找不到使用AnyEvent::DBI重新连接到数据库的方法,除非创建一个新的AnyEvent::DBI实例(新)。任何建议都会很棒!

mysql - 如何在 Apache::DBI 中禁用 ping?

我在Apache::DBI中禁用连接验证时遇到问题。来自perldoc:Apache::DBI->setPingTimeOut($data_source,$timeout)Thisconfigurestheusageofthepingmethod,tovalidateaconnection.Settingthetimeoutto0willalwaysvalidatethedatabaseconnectionusingthepingmethod(default).Settingthetimeout我尝试使用与connect()中相同的$data_source调用setPingTimeOu

mysql - collectd - 如何安装 dbi 插件?

我在collectd.conf中取消注释LoadPlugindbi,但现在重新启动collectd给我:Stoppingcollectd:[OK]Startingcollectd:Couldnotfindplugindbi.[OK]如何启用该插件?操作系统是centos6.4并且yumlistall没有显示collectd-dbi插件:[root@virtualbox~]#yumlistall|grepcollectd|grepdbi[root@virtualbox~]#我已经安装了缺少的libdbi-dbd-mysql,但这并没有改变任何东西。 最佳答案

mysql - quicklisp 安装和使用 cl-dbi 失败并出现错误 - 打开共享对象时出错 "libmysqlclient_r.so":

我想用cl-dbi连接mysql在使用quicklisp在sbcl上安装cl-dbi后,尝试连接到mysql但失败并出现以下错误:(let((quicklisp-init(merge-pathnames"quicklisp/setup.lisp"(user-homedir-pathname))))(when(probe-filequicklisp-init)(loadquicklisp-init)))T*(ql:quickload:cl-dbi)Toload"cl-dbi":Load2ASDFsystems:alexandriacloser-mopInstall6Quicklispre

mysql - 为什么用分号连接多个 MySQL 查询对 Perl DBI 不起作用?

我想使用DBI将值插入到两个单独的MySQL表中.我试图通过在它们之间插入;将两个有效的INSERT查询合并为一个:$dbh->do(q{INSERTINTO`testA`(test)values('testvalue111');INSERTINTO`testB`(test)values('testvalue222');});但我总是得到一个错误:Syntacticerrorin"INSERTINTO`testB`(test)values('testvalue222..."如果我将查询分成两个单独的do调用,它就可以工作。但是组合查询在phpMyAdmin中运行良好。为什么它在Perl

mysql - Perl DBI 连接不一致

背景我正在从事一个项目,涉及从两个不同的数据库中检索数据。其中一个数据库使用MicrosoftSQL数据库引擎,另一个数据库运行MySQL引擎。我需要一种从配置角度指定数据源名称(DSN)的简单方法,但由于DSN命名约定中的不一致,这对于DBI模块是不可能的(根据我的经验).MySQL考虑以下连接:my$dsn="dbi:mysql:host=$host;database=$db_name";my$dbh=DBI->connect($dsn,$user,$pass);假设主机上存在提供的数据库名称,此连接将成功。我已经测试过很多次了。请自行验证。微软SQL现在我尝试使用相同的DSN连接

mysql - 如何提高从一个数据库服务器中选择 100 万多行并将它们插入到另一个数据库服务器的 Perl/DBI 脚本的性能?

我使用的是最新版本的MySQL(工作台)、Perl和DBI。我有两个独特的数据库,每个数据库都在独特的服务器上。我在Server1上的DB1上查询表1,加载到一个数组中,然后使用while将所述表插入到Server2上的DB2上的表2中。这不是直接复制,因为我实际上是在表1上进行选择。我正在尝试加快我的脚本或在必要时更改查询。我正在使用绑定(bind)并将准备语句移出循环,这确实很有帮助。但是,我最终还是进行了160万次调用以插入到table2/db2/server2,这会占用大量时间(每次调用3100秒或大约2-3毫秒)。while循环中使用了两个subs&insert2tempDa

mysql - 为什么 DBI 隐式地将整数更改为字符串?

我有一个具有以下结构的MySQL表。alidbigint(20),ndipvarchar(20),ndregionvarchar(20),occ_numint(3),Delta_Flagint(1)从表中选择数据后,我得到所有引用的数据并作为字符串值。#!/usr/bin/perlusestrict;usewarnings;useData::Dumper;useFindBin;uselib$FindBin::Bin;useDatabase;my$pwd=$FindBin::Bin;my$db=Database->new('mysql',"$pwd/config.ini");my$db1

mysql - 如何确定 Perl DBI 数据库处理程序的连接状态

如何确定PerlDBI数据库处理程序的连接状态(连接是否打开)?类似.NETSqlConnection.State==Open的东西。可能是这样的defined($dbh->do("somenopsql"))但是找不到要使用的sqlnop语句。 最佳答案 可以通过调用询问数据库句柄是否已连接$dbh->ping();一些DB驱动程序不实现ping但DBD::mysql实现。另一种方法是为MySQL运行空选择,如select1。我假设是MySQL,因为这是你的问题的标记方式。其他数据库的答案会略有不同。

mysql - 我如何从 Perl 的 DBI 获得 MySQL 查询的结果?

我正在执行以下操作,得到“1”,我认为这意味着语句运行良好。但我想要结果。怎么了?#!/usr/bin/perlusestrict;useDBI;my$host="test";my$database="dd";my$port=3306;my$user="uuu";my$pw="ppp";my$mysql=DBI->connect("DBI:mysql:database=$database;host=$host;port=$port",$user,$pw)ordie"CannotconnecttoMySQLserver\n";my$m=$mysql->do(qq{selectMAX(id