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

解決本地鏈接外部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://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)站
婷婷丁香久久五月婷婷| 日本a级片免费在线观看| 双高干文男女主都很强| 中文字幕人妻中文av不卡专区| 亚洲色图综合在线观看| 极品美女粉嫩啪啪高潮| 国产欧美日韩精品av| 久久东京热日韩精品一区| 亚洲黄色一区大陆av剧情| 久久女婷五月综合色啪色老板 | 日韩精品一区二区毛片| 国产精品一区巨乳人妻| 成人自拍偷拍在线视频| 日韩中文字幕不卡免费| 人妻少妇久久中文字幕韩| 国产成人av在线观看| 禁止18黄色免费网站| 久娜娜精品视频在线观看| 97国产超碰在线观看| 中文乱码字幕亚洲精品| 在线亚洲精品一区二区| 亚洲欧美精品专区极品| 中文字幕精品久久久人妻| 国产精品中文字幕有码| 91午夜福利视频鉴赏| 亚洲国产传媒在线观看| 久久96国产精品久久秘臀| 免费看真人性生活视频 | 综合久久—本道中文字幕| 国产中文字幕乱码中文| 99久久精品国产熟女拳交| 白白色成人永久在线观看视频| 久国产精品韩国三级视频| 女人天堂网av免费看| 日韩精品色av一区二区| 亚洲激情视频久久精品| 国产日韩熟女中文字幕| 日日夜夜精品天天综合| 日本熟妇一区二区三区高清视频| 男女视频一区二区三区在线观看| 日本高清不卡中文字幕|