今天在使用MySQL時,遇到了無法連接127.0.0.1的問題。起初以為是網(wǎng)絡(luò)問題,但是ping了一下本機(jī)IP地址,發(fā)現(xiàn)并沒有問題。于是,進(jìn)一步排查了此問題。
$ mysql -u root -h 127.0.0.1 -p
通過以上命令,嘗試使用root賬戶連接127.0.0.1的MySQL,卻發(fā)現(xiàn)一直處于等待狀態(tài),沒有任何響應(yīng)。查看MySQL的日志,發(fā)現(xiàn)以下異常信息:
[Warning] IP address '127.0.0.1' could not be resolved: Temporary failure in name resolution [Warning] Can't create test file /usr/local/mysql/data/gh-22131-ap1.lower-test [Warning] Can't create test file /usr/local/mysql/data/gh-22131-ap1.lower-test [ERROR] Plugin 'InnoDB' init function returned error. [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded [ERROR] Unknown/unsupported table type: innodb [ERROR] Aborting
根據(jù)日志信息,可以看出MySQL無法解析127.0.0.1這個IP地址,估計(jì)是DNS解析有問題。連接MySQL時,會先將IP地址轉(zhuǎn)換為主機(jī)名,然后再建立連接。而解析主機(jī)名是需要進(jìn)行DNS查詢的。因此,需要檢查本機(jī)DNS配置是否正確。
$ cat /etc/resolv.conf
通過以上命令,查看本機(jī)DNS配置文件,發(fā)現(xiàn)該文件中并沒有任何DNS配置信息。因此,需要手動添加DNS信息,例如添加Google的DNS:
$ sudo echo "nameserver 8.8.8.8" >>/etc/resolv.conf
添加完成后,再次嘗試連接MySQL,發(fā)現(xiàn)連接成功。問題解決。