很多朋友都可能碰到過遠(yuǎn)程連接mysql要不就是連接不上,要不就是很慢,我今天也碰到了下面我來把我解決連接速度慢方法分享給大家.
我想連接同事機(jī)器上的數(shù)據(jù)庫(kù),在賬號(hào)密碼什么都正確的情況,還是遇到了幾個(gè)問題.
1、防火墻
通過telnet 同事機(jī)器IP 3306,結(jié)果死活是連不上,曾經(jīng)處理過類似的問題,于是把同事機(jī)器上的防火墻直接關(guān)閉就能telnet了.
2、連接數(shù)據(jù)庫(kù)很慢
在PHP中連接MySQL數(shù)據(jù)庫(kù)非常慢,我以為是PHP擴(kuò)展有異常,于是換cmd來操作,結(jié)果連接還是很慢,這讓我排除了是PHP的原因,百度一下,得知是因?yàn)镸ySQL連接有以下幾個(gè)步驟:
1、DNS解析連接的HOST
2、解析不了,就直接當(dāng)前IP連接。.
于是,通過在mysql的配置文件中的[mysqld]下面添加了一行代碼:
skip-name-resolve 在連接遠(yuǎn)程數(shù)據(jù)庫(kù)的時(shí)候,直接跳過MySQL的DNS解析.
2. 在啟動(dòng)mysqld服務(wù)器的時(shí)候,附加 –skip-name-resolve 選項(xiàng),原理與第一個(gè)一樣
3. 增大HOST_CACHE_SIZE的值,HOST_CACHE_SIZE的默認(rèn)值是128,適合多個(gè)遠(yuǎn)程主機(jī)
因?yàn)槲沂鞘褂肐P來連接,根本DNS解析不了,所以,在解析的過程中就占用了很長(zhǎng)的時(shí)間,這段時(shí)間導(dǎo)致DNS解析超時(shí),通過上面的代碼,直接讓MYSQL不要去DNS解析.
注意:若使用–skip-grant-tables系統(tǒng)將對(duì)任何用戶的訪問不做任何訪問控制,但可以用 mysqladmin flush-privileges或mysqladmin reload來開啟訪問控制;默認(rèn)情況是show databases語(yǔ)句對(duì)所有用戶開放,
如果mysql服務(wù)器沒有開遠(yuǎn)程帳戶,就在my.ini里面加上skip-grant-tables
新聞熱點(diǎn)
疑難解答
圖片精選