若何處理局域網內mysql數據庫銜接慢。本站提示廣大學習愛好者:(若何處理局域網內mysql數據庫銜接慢)文章只能為提供參考,不一定能成為您想要的結果。以下是若何處理局域網內mysql數據庫銜接慢正文
經由過程內網連別的一台機械的mysql辦事, 確發明速度N慢! 等了年夜約幾十秒才比及提醒輸出暗碼。 然則ping mysql地點辦事器卻很快! 想到良久之前有過相似的經歷, telnet等一些辦事在銜接要求的時刻,會做一些反向域名解析(假如反向解析不暢, 估量就會延遲許多, 給人的感到是銜接速度N慢!)
在網上搜刮了下處理方法, 發明有兩種:
一. 雙方機械設置裝備擺設的resolve.conf紛歧樣, 把resolve.conf設置裝備擺設成速度比擬快的DNS就OK
二. 把mysql設置裝備擺設中的DNS反向解析關失落, 也OK
我用的是第一種方法, 修正resolve.conf設置裝備擺設後, 速度就下去了!
附一: 摘自http://gcoder.blogbus.com/logs/31907502.html
兩台在統一網段的機械, 銜接統一個數據庫辦事器, 一台的速度是另外一台的100倍, 數據庫主機是域名表現的. 怎樣都想不明確?
後來檢查兩台機械的 /etc/resolv.conf, 發明設置裝備擺設紛歧樣, 改成速度快的那台機械的設置裝備擺設, 速度那上就下去了.
域名解析也能夠招致收集法式慢, 又一收成. 別的, mysql還有DNS反向解析的成績, 也能夠招致速度慢, 可以在mysql的設置裝備擺設文件中, 把DNS反向解析關失落.
附二: 摘自
當長途拜訪mysql時,mysql會解析域名,會招致拜訪速度很慢,加高低面這個設置裝備擺設可處理此成績
# 制止mysql做域名解析 [mysqld] skip-name-resolve
PHP長途銜接MYSQL速度慢,有時長途銜接到MYSQL用時4-20秒不等,當地銜接MYSQL正常,湧現這類成績的重要緣由是,默許裝置的MYSQL開啟了DNS的反向解析,在MY.INI(WINDOWS體系下)或MY.CNF(UNIX或LINUX體系下)文件的[mysqld]下參加skip-name-resolve這一句。
然則,如許會惹起一個成績:銜接mysql時,不克不及應用 localhost銜接了,而是要應用IP地址的;假如是按localhost對用戶賦權限的話,用戶登錄權限也要修正一下的。
銜接mysql速度慢的處理辦法.
2台辦事器,一台跑iis+php,一台跑mysql,和以往一樣設置裝備擺設好情況,測試頁面一切OK
跑運用的時刻發明php拜訪mysql速度很慢,這類情形在之前從未發明過,固然2台辦事器並不是在統一網段中,然則ping數值根本上都在1,2ms之間,tcp銜接應當不是成績關健,谷歌今後找到謎底,在my.ini文件的[mysqld]部門參加:skip-name-resolve,保留文件,重啟mysql,一切OK啦,速度象飛一樣了
新版本的mysql設置裝備擺設起來不象之前的誰人傻瓜化了,這個成績折騰了我一上午的時光,早晨回來總算是處理了,嘿嘿,又學到一些器械。
Windows 2003下的MySQL 5辦事器,本機銜接到MySQL辦事異常快,局域網內有兩台Linux機械,有一台銜接很快,別的一台輸出暗碼後要等好幾秒鐘能力連上。
處理方法:
在MySQL辦事器的設置裝備擺設中增長一個以下設置裝備擺設後速度飛快。
[mysqld] skip-name-resolve
附錄:( How MySQL uses DNS )
When a new thread connects to mysqld, mysqld will spawn a new thread to handle the request. This thread will first check if the hostname is in the hostname cache. If not the thread will call gethostbyaddr_r() and gethostbyname_r() to resolve the hostname.
If the operating system doesn't support the above thread-safe calls, the thread will lock a mutex and call gethostbyaddr() and gethostbyname() instead. Note that in this case no other thread can resolve other hostnames that is not in the hostname cache until the first thread is ready.
You can disable DNS host lookup by starting mysqld with --skip-name-resolve. In this case you can however only use IP names in the MySQL privilege tables.
If you have a very slow DNS and many hosts, you can get more performance by either disabling DNS lookop with --skip-name-resolve or by increasing the HOST_CACHE_SIZE define (default: 128) and recompile mysqld.
You can disable the hostname cache with --skip-host-cache. You can clear the hostname cache with FLUSH HOSTS or mysqladmin flush-hosts.
If you don't want to allow connections over TCP/IP, you can do this by starting mysqld with --skip-networking.
PHP長途銜接MYSQL速度慢,有時長途銜接到MYSQL用時4-20秒不等,當地銜接MYSQL正常,湧現這類成績的重要緣由是,默許裝置的MYSQL開啟了DNS的反向解析,在MY.INI(WINDOWS體系下)或MY.CNF(UNIX或LINUX體系下)文件的[mysqld]下參加skip-name-resolve這一句。
MYSQL長途銜接速度慢的處理辦法
在局域網內銜接其他機械的MYSQL,發明速度慢的很,不曉得甚麼緣由,總有幾秒的延遲.
後來在網上發明處理辦法,my.ini外面添加
[mysqld] skip-name-resolve skip-grant-tables
如許速度就快了!
skip-name-resolve
選項就可以禁用DNS解析,銜接速度會快許多。不外,如許的話就不克不及在MySQL的受權表中應用主機名了而只能用ip格局。
若應用–skip-grant-tables體系將對任何用戶的拜訪不做任何拜訪掌握,但可以用 mysqladmin flush-privileges或mysqladmin reload來開啟拜訪掌握;默許情形是show databases語句對一切用戶開放,假如mysql辦事器沒有開長途帳戶,就在my.ini外面加上skip-grant-tables
經由過程以上辦法勝利處理局域網內mysql數據庫銜接慢,有須要的同伙可以參考下本篇文章。