欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

解決本地鏈接外部MySQL數(shù)據(jù)庫時(shí)慢的問題

2022-07-08    分類: 網(wǎng)站建設(shè)

服務(wù)器放在局域網(wǎng)內(nèi)進(jìn)行測(cè)試時(shí),MySQL數(shù)據(jù)庫的訪問速度還是很快。但當(dāng)服務(wù)器托管放到IDC數(shù)據(jù)中心機(jī)房時(shí)要訪問外網(wǎng)后,MySQL數(shù)據(jù)庫的訪問速度就變得非常慢。

后來在問下了網(wǎng)絡(luò)運(yùn)維的老同事,給出了解決方法。在MySQL配置文件中my.cnf里面添加
[mysqld]
skip-name-resolve    #跳過名稱解析
skip-grant-tables      #跳過授權(quán)表

這樣速度就快了

skip-name-resolve

選項(xiàng)就能禁用DNS解析,連接速度會(huì)快很多。不過,這樣的話就不能在MySQL的授權(quán)表中使用主機(jī)名了而只能用ip格式。

還有權(quán)限的問題,當(dāng)用戶設(shè)置限制只能訪問某個(gè)數(shù)據(jù)庫,如果這個(gè)數(shù)據(jù)庫被刪了,再重建這個(gè)指定數(shù)據(jù)庫,限制用戶還是不能訪問這個(gè)數(shù)據(jù),大概是刪除數(shù)據(jù)庫的時(shí)間,把該用戶的訪問權(quán)限也級(jí)聯(lián)刪除了,詳細(xì)可以查看mysql.db的記錄

若使用–skip-grant-tables系統(tǒng)將對(duì)任何用戶的訪問不做任何訪問控制,但可以用 mysqladmin flush-privileges或mysqladmin reload來開啟訪問控制;默認(rèn)情況是show databases語句對(duì)所有用戶開放。

如果mysql服務(wù)器沒有開遠(yuǎn)程帳戶,就在my.cnf里面加上skip-grant-tables

排除網(wǎng)絡(luò)問題。

就MySQL本身而言,問題出在在mysql dns反解析

mysql>show processlist;

| 20681949 | unauthenticated user | 10.10.4.193:52497 | NULL | Connect | | Reading from net | NULL | 
| 20681948 | unauthenticated user | 10.10.4.193:52495 | NULL | Connect | | Reading from net | NULL

發(fā)現(xiàn)有非常多的 unauthenticated user 嘗試做登入使用 mysql 的情況 ,當(dāng)這種情況無限制發(fā)生時(shí)就會(huì)造成系統(tǒng)十分緩慢。

查閱mysql官方網(wǎng)站得知,這屬于官方一個(gè)系統(tǒng)上的特殊設(shè)定,就把他當(dāng)成mysql的一個(gè)bug算了,不管鏈接的的方式是經(jīng)過 hosts 或是 IP 的模式,他都會(huì)對(duì) DNS 做反查。mysqld 會(huì)嘗試去反查 IP -> dns ,由于反查解析過慢,就會(huì)無法應(yīng)付過量的查詢。

解決辦法:

/usr/local/mysql/bin/mysqld_safe --skip-name-resolve --user=mysql&

加 --skip-name-resolve 這么一個(gè)參數(shù)就可以,關(guān)閉mysql的dns反查功能。

或者修改mysql配置文件。

編輯/etc/my.cnf

在[mysqld]段中加入

skip-name-resolve

重啟mysql

在/etc/my.cnf 的配置文件中加入如下一句,禁用DNS反響解析,就能大大加快MySQL連接的速度。
[mysqld]

下面加上這句
skip-name-resolve

#注意有些文章中寫道加入–skip-name-resolve,經(jīng)驗(yàn)證,在CentOS5下加入–skip-name-resolve會(huì)導(dǎo)致mysql守護(hù)進(jìn)程無法啟動(dòng)。估計(jì)在其他linux系統(tǒng)下是一樣的,windows下沒有測(cè)試,skip-name-resolve應(yīng)該就可以。

**************************************

問題現(xiàn)象是這樣的:

我在一臺(tái)機(jī)器上(61.183.23.23)啟動(dòng)了一個(gè)mysql,然后開通一個(gè)賬號(hào)可以從127.0.0.1或者從61.183.23.23訪問。但是遇到一個(gè)問題就是使用下面兩個(gè)命令行訪問的時(shí)候,速度差別非常大:

mysql –h 127.0.0.1 –u user
mysql –h 61.183.23.23 –u user

然后我使用ping,判斷兩個(gè)IP的速度差不多。

使用127.0.0.1的IP速度比另一個(gè)快太多了。雖然說這里的61.183.23.23需要去外網(wǎng)走一圈,但是速度差別怎么會(huì)差這么多。

解決辦法:

mysql使用skip-name-resolve禁止掉DNS的查詢。
mysql會(huì)在用戶登錄過程中對(duì)客戶端IP進(jìn)行DNS反查,不管你是使用IP登錄還是域名登錄,這個(gè)反查的過程都是在的。所以如果你的mysql所在的服務(wù)器的DNS有問題或者質(zhì)量不好,那么就有可能造成我遇到的這個(gè)問題,DNS解析出現(xiàn)問題。

修改mysql配置文件

[mysqld]
skip-name-resolve

補(bǔ)充:

做個(gè)提醒,增加skip-name-resolve有可能導(dǎo)致賬號(hào)失效,比如我原先的賬號(hào)是yejianfeng@localhost,然后其實(shí)我使用mysql -h127.0.0.1 -uyejianfeng 是可以登錄的。但是一旦加上了skip-name-resolve,就不能登錄的了。需要加上賬號(hào)yejianfeng@127.0.0.1

官方解釋信息如下:

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.

翻譯

MySQL如何使用DNS

當(dāng)一個(gè)線程連接到mysqld,mysqld將產(chǎn)生新的線程來處理請(qǐng)求。這個(gè)帖子會(huì)先檢查你的名字是在服務(wù)器緩存。如果沒有線程將調(diào)用gethostbyaddr_r()和gethostbyname_r()來解析主機(jī)名。

如果操作系統(tǒng)不支持上述線程安全調(diào)用,螺紋鎖互斥調(diào)用()和gethostbyname()相反。請(qǐng)注意,在這種情況下,沒有其他線程可以解決其他主機(jī)不在服務(wù)器緩存直到第一個(gè)線程已經(jīng)準(zhǔn)備好。

你可以從–跳過名字mysqld解決禁用DNS主機(jī)查找。在這種情況下,您只能在MySQL特權(quán)表中使用IP名稱。

如果你有一個(gè)非常緩慢的DNS和許多主機(jī),你可以獲得更多的性能通過禁用DNS名稱解析lookop與–跳過或增加host_cache_size定義(默認(rèn)值:128)和編譯mysqld。

您可以禁用服務(wù)器與–跳過主機(jī)緩存。你可以用沖洗主機(jī)或mysqladmin沖洗主機(jī)清除服務(wù)器緩存。

如果你不想讓連接在TCP / IP,你可以通過從–跳過網(wǎng)絡(luò)mysqld。

文章名稱:解決本地鏈接外部MySQL數(shù)據(jù)庫時(shí)慢的問題
分享路徑:http://www.aaarwkj.com/news/175875.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、標(biāo)簽優(yōu)化、App開發(fā)、商城網(wǎng)站、建站公司、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
国产精品久久久99| 久久午夜av一区二区| 成年人在线免费观看国产| 人人人妻人人澡人人爽e| 99中文字幕国产精品| 99热这里只有精品中文有码| 97久久精品人妻一区二区三区| 欧美亚洲另类国产精品| 国内自拍一区二区三区| 四虎最新在线播放视频| 人妻免费精品久久一区| 久久亚洲综合精品人妻| 欧美十日本亚洲激情视频| 日本美女午夜福利视频| 另类视频在线免费观看| 亚洲三级黄片免费播放| 日本免费在线不卡一区二区| 国产实拍之强伦奸在线观看| 国产免费av剧情演绎| 亚洲欧美另类熟女丝袜| 亚洲欧洲精品专线九九| 亚洲综合五月天色婷婷| 热精品韩国毛久久久久久| 99热这里在线只有精品| 蜜臀久久精品亚洲一区| 溪乱毛片一区二区三区| 亚洲精品有码在线观看| 亚洲成人高清av在线| 中文字幕免费日本在线| 九九热精品在线观看视频| 亚洲乱码在线中文字幕| 日韩最新视频一区二区三| av国语对白在线观看| 日本中文字幕三级专区| 日韩性生活视频免费播放| 顶级少妇做爰片高潮丸| 国产麻豆精品二区视频| 日韩欧美亚洲自拍另类| 日韩久久精品国产亚洲av成人| 欧美成人精品三级在线网站| 国产精品一区在线免费看|