今天在搭建MySQL MHA 安裝MHA node所需的perl模塊(DBD:mysql)時遇到了一個小的錯誤,如果思路不對的話,還是產生不少麻煩。 現梳理記錄下來。 問題現象 執行的命令 yum install perl-DBD-MySQL -y 報錯信息如下: 可以看出錯誤的關鍵字為 :Cann ...
今天在搭建MySQL MHA 安裝MHA node所需的perl模塊(DBD:mysql)時遇到了一個小的錯誤,如果思路不對的話,還是產生不少麻煩。
現梳理記錄下來。
問題現象
執行的命令
yum install perl-DBD-MySQL -y
報錯信息如下:
可以看出錯誤的關鍵字為 :Cannot find a valid baseurl for repo: base/7/x86_64。
這個問題 說明url 無效。
分析處理
在這個錯誤提示中其實有顯示url的數據,我們可以從錯誤信息中的二、三兩行來定位。數據如下:
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
判讀是否有效,我們可以首先看是否可以ping通。
執行命令:
ping mirrorlist.centos.org
發現此時是ping 不通的,說明確實有問題。但此時尚不可以判斷是源主機(網址)不存在或非法,也有一種可能,就是本地請求沒有成功發出去。
怎麼驗證呢?其實很簡單,我們只要Ping下百度就可以了。
執行命令
ping www.baidu.com
從以上截圖中可以看出百度也ping不通,此時說明不是url的問題。問題在於我們request請求,根本就沒有發送出到host主機。
所以,問題很可能在我們本機的網路設置。但是考慮到,本機已成功分配到IP地址,ip addr 顯示正常,可以在區域網內互聯。
此時感覺很是奇怪。
忽然想到,可能是DNS的問題。
安裝本機時同事使用的老的裝機模板,所以DNS參數沒有及時更新。
問題基本定位到了,下一步修改。
馬上進入 /etc/sysconfig/network-scripts目錄,修改文件 ifcfg-ens32 中的DNS1參數。
修改DNS1配置後,記得一定要重啟 network 服務,否則無效。
執行重啟的命令如下:
service network restart
結果驗證
此時 ping 百度正常
ping 安裝程式的url正常
再次安裝perl模塊(DBD:mysql),成功執行
以上問題已經解決。我們繼續安裝,還會碰到一個相關問題,在此一併描述。
成功安裝perl模塊後,當我們在所有的節點執行安裝mha node時報錯。(在/data/mha/mha4mysql-node-0.57 文檔下執行 perl Makefile.PL )
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: inc /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at inc/Module/Install/Makefile.pm line 4.
BEGIN failed--compilation aborted at inc/Module/Install/Makefile.pm line 4.
Compilation failed in require at inc/Module/Install.pm line 307.
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: inc /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at inc/Module/Install/Can.pm line 5.
BEGIN failed--compilation aborted at inc/Module/Install/Can.pm line 5.
Compilation failed in require at inc/Module/Install.pm line 307.
解決此問題的方案為:安裝perl-devel 和 perl-CPAN。需要分別執行以下命令:
yum -y install perl-devel
yum install perl-CPAN
然後再次執行 perl Makefile.PL,問題解決。
後記
這隻是個小問題,沒有太大的科技含量。我們在yum安裝模塊時,經常會遇到各種各樣的坑。總結下,記於此,更多的是經常提醒自己,怎麼處理問題。如果能對初學者有所裨益,那是更好。