使用Perl DBI操作MySQL的一些建議
使用perl連接mysql,這個(gè)網(wǎng)上有很多案例了,一般大家都是DBI下的DBD::MySQL這個(gè)模塊進(jìn)行.這里做一個(gè)mask弄一個(gè)TIPS:
Perl DBI MySQL的字符集為UTF8
Perl DBI 特殊字符寫入時(shí)報(bào)錯(cuò)
Perl DBI 連接自動(dòng)重連或是連接超時(shí)
1. 當(dāng)MySQL的字符集是UTF8時(shí)需要引入:
use utf8; binmode(STDOUT, ':encoding(utf8)'); binmode(STDIN, ':encoding(utf8)'); binmode(STDERR, ':encoding(utf8)');
目的:
解決perl連接mysql到數(shù)據(jù)后讀取顯示結(jié)果為亂碼的問(wèn)題.
2.對(duì)于特殊字符的寫入,最好使用:
my $sth=$dbh->prepare("insert into wubx.WeekEvent values(?,?,?,?,?,?,?)");
$sth->execute($OId,$CId,qq/$Time/,$EventType,qq/$CDesc/,$PId,$RFlag);
對(duì)于字符串有可能是用戶提交的用qq//包裹,減少特殊字符造成SQL不能執(zhí)行的情況.
3. 如果連接兩個(gè)數(shù)據(jù)庫(kù)有交換的操作或是遷數(shù)據(jù),要考慮連連超時(shí)的情況.
報(bào)錯(cuò): MySQL server has gone away
處理辦法:
在DBD::mysql 4.012以后支持DBI連接的自動(dòng)重連.需要設(shè)置:
$dbh->{mysql_auto_reconnect} = 1;
在早期的模塊中不支持,簡(jiǎn)單的方法:
$dbh->do('set SESSION wait_timeout=72000');
$dbh->do('set SESSION interactive_timeout=72000');
此方法適用別的語(yǔ)言連MySQL連接短期丟失或是Server的timeout時(shí)間設(shè)置太短.
相關(guān)文章
mysql8.0使用PXC實(shí)現(xiàn)高可用的示例(Rocky8.0環(huán)境)
本文主要介紹了在Rocky8.0環(huán)境下搭建MySQL8.0的Percona XtraDB Cluster(PXC)集群,,可以實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)同步、讀寫分離和高可用性,具有一定的參考價(jià)值,感興趣的可以了解一下2025-02-02
MySQL數(shù)據(jù)庫(kù)服務(wù)器逐漸變慢分析與解決方法分享
本文針對(duì)MySQL數(shù)據(jù)庫(kù)服務(wù)器逐漸變慢的問(wèn)題, 進(jìn)行分析,并提出相應(yīng)的解決辦法2012-01-01
MySQL用作備份還原的導(dǎo)入和導(dǎo)出命令用法整理
這篇文章主要介紹了MySQL用作備份還原的導(dǎo)入和導(dǎo)出命令用法整理,包括mysqldump的命令的使用以及l(fā)oad data相關(guān)命令,需要的朋友可以參考下2015-12-12
詳解數(shù)據(jù)庫(kù)varchar與char有哪些區(qū)別
CHAR和VARCHAR是MySQL中兩種最重要的字符串類型,兩者的原理和區(qū)別也是面試中高頻問(wèn)題,如果是你,會(huì)從哪幾個(gè)角度去回答這個(gè)問(wèn)題呢?今天,我給大家總結(jié)了一下相關(guān)知識(shí)點(diǎn),感興趣的朋友一起看看吧2023-10-10
自動(dòng)恢復(fù)MySQL數(shù)據(jù)庫(kù)的日志文件思路分享及解決方案
本文主要講訴如何自動(dòng)恢復(fù)mysql數(shù)據(jù)庫(kù)的日志文件,喜歡的在服務(wù)器或者數(shù)據(jù)庫(kù)上直接操作的兄弟們你值得收藏下!2014-08-08
Mysql如何設(shè)置表主鍵id從1開(kāi)始遞增
這篇文章主要介紹了Mysql如何設(shè)置表主鍵id從1開(kāi)始遞增問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
詳細(xì)聊聊MySQL中auto_increment有什么作用
auto_increment是用于主鍵自動(dòng)增長(zhǎng)的,從1開(kāi)始增長(zhǎng),下面這篇文章主要給大家介紹了關(guān)于MySQL中auto_increment有什么作用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06

