新聞中心
mysql 如何更新mysql的最大連接數(shù)max
有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個(gè)myisamchk, isamchk數(shù)據(jù)檢測(cè)恢復(fù)工具。前者使用起來比較簡(jiǎn)便。推薦使用。
成都創(chuàng)新互聯(lián)公司從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元鄒平做網(wǎng)站,已為上家服務(wù),為鄒平各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
1. check table 和 repair table
登陸mysql 終端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出現(xiàn)的結(jié)果說Status是OK,則不用修復(fù),如果有Error,可以用:
repair table tabTest;
進(jìn)行修復(fù),修復(fù)之后可以在用check table命令來進(jìn)行檢查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk適用于myisam類型的數(shù)據(jù)表,而isamchk適用于ISAM類型的數(shù)據(jù)表。這兩條命令的主要參數(shù)相同,一般新的系統(tǒng)都使用myisam作為缺省的數(shù)據(jù)表類型,這里以myisamchk為例子進(jìn)行說明。當(dāng)發(fā)現(xiàn)某個(gè)數(shù)據(jù)表出現(xiàn)問題時(shí)可以使用:
myisamchk tablename.MYI
進(jìn)行檢測(cè),如果需要修復(fù)的話,可以使用:
myisamchk -of tablename.MYI
關(guān)于myisamchk的詳細(xì)參數(shù)說明,可以參見它的使用幫助。需要注意的時(shí)在進(jìn)行修改時(shí)必須確保MySQL服務(wù)器沒有訪問這個(gè)數(shù)據(jù)表,保險(xiǎn)的情況下是最好在進(jìn)行檢測(cè)時(shí)把MySQL服務(wù)器Shutdown掉。
-----------------------------
另外可以把下面的命令放在你的rc.local里面啟動(dòng)MySQL服務(wù)器前:
[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL監(jiān)聽的Sock文件位置,對(duì)于使用rpm安裝的用戶應(yīng)該是/var/lib/mysql/mysql.sock,對(duì)于使用源碼安裝則是/tmp/mysql.sock可以根據(jù)自己的實(shí)際情況進(jìn)行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL數(shù)據(jù)庫存放的位置。
需要注意的時(shí),如果你打算把這條命令放在你的rc.local里面,必須確認(rèn)在執(zhí)行這條指令時(shí)MySQL服務(wù)器必須沒有啟動(dòng)!檢測(cè)修復(fù)所有數(shù)據(jù)庫(表)
如何增大MYSQL數(shù)據(jù)庫連接數(shù)
如果mysql 連接數(shù)據(jù)設(shè)置不合理可能會(huì)導(dǎo)致很小的流量mysql就提示MySQL: ERROR 1040: Too many connections錯(cuò)誤了,那么要如何才算是合理設(shè)置mysql最大連接數(shù)呢,下面我來給大家介紹介紹。
MySQL服務(wù)器的連接數(shù)并不是要達(dá)到最大的100%為好,還是要具體問題具體分析,下面就對(duì)MySQL服務(wù)器最大連接數(shù)的合理設(shè)置進(jìn)行了詳盡的分析,供您參考。
我們經(jīng)常會(huì)遇見“MySQL: ERROR 1040: Too many connections”的情況,通常,mysql的最大連接數(shù)默認(rèn)是100, 最大可以達(dá)到16384。
一種是訪問量確實(shí)很高,MySQL服務(wù)器抗不住,這個(gè)時(shí)候就要考慮增加從服務(wù)器分散讀壓力,另外一種情況是MySQL配置文件中max_connections值過小:
mysql show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 256 |
+-----------------+-------+
這臺(tái)MySQL服務(wù)器最大連接數(shù)是256,然后查詢一下服務(wù)器響應(yīng)的最大連接數(shù):
mysql show global status like 'Max_used_connections';
MySQL服務(wù)器過去的最大連接數(shù)是245,沒有達(dá)到服務(wù)器連接數(shù)上限256,應(yīng)該沒有出現(xiàn)1040錯(cuò)誤,比較理想的設(shè)置是:
Max_used_connections / max_connections * 100% ≈ 85%
最大連接數(shù)占上限連接數(shù)的85%左右,如果發(fā)現(xiàn)比例在10%以下,MySQL服務(wù)器連接上線就設(shè)置得過高了
在Windows下常用的有兩種方式修改最大連接數(shù)。
第一種:命令行修改。
mysql -uuser -ppassword(命令行登錄MySQL)
mysqlshow variables like 'max_connections';(查可以看當(dāng)前的最大連接數(shù))
msyqlset global max_connections=1000;(設(shè)置最大連接數(shù)為1000,可以再次查看是否設(shè)置成功)
mysqlexit(推出)
這種方式有個(gè)問題,就是設(shè)置的最大連接數(shù)只在mysql當(dāng)前服務(wù)進(jìn)程有效,一旦mysql重啟,又會(huì)恢復(fù)到初始狀態(tài)。因?yàn)閙ysql啟動(dòng)后的初始化工作是從其配置文件中讀取數(shù)據(jù)的,而這種方式?jīng)]有對(duì)其配置文件做更改。
第二種:修改配置文件。
這 種方式說來很簡(jiǎn)單,只要修改MySQL配置文件my.ini 或 my.cnf的參數(shù)max_connections,將其改為max_connections=1000,然后重啟MySQL即可。但是有一點(diǎn)最難的就是my.ini這個(gè)文件在哪找。通常有兩種可能,一個(gè)是在安裝目錄下(這是比較理想的情況),另一種是在數(shù)據(jù)文件的目錄下,安裝的時(shí)候如果沒有人為改變目錄的話,一般就在C:/ProgramData/MySQL往下的目錄下。
與連接數(shù)相關(guān)的幾個(gè)參數(shù):
在修改最大連接數(shù)的時(shí)候會(huì)有這樣一個(gè)疑問—這個(gè)值是不是越大越好,或者設(shè)置為多大才合適?這個(gè)參數(shù)的大小要綜合很多因素來考慮,比如使用的平臺(tái)所支持的線程庫數(shù)量(windows只能支持到2048)、服務(wù)器的配置(特別是內(nèi)存大?。?、每個(gè)連接占用資源(內(nèi)存和負(fù)載)的多少、系統(tǒng)需要的響應(yīng)時(shí)間等。可以在global或session范圍內(nèi)修改這個(gè)參數(shù)。連接數(shù)的增加會(huì)帶來很多連鎖反應(yīng),需要在實(shí)際中避免由此引發(fā)的負(fù)面影響。
linux下如何設(shè)置或修改mysql最大連接數(shù)
查看當(dāng)前系統(tǒng)下mysql設(shè)置的最大連接數(shù):[root@localhost~]#/usr/bin/mysqladmin-uroot-pvariables|grepmax_connections|max_connections|100//默認(rèn)是100[root@localhost~]#nano/etc/my.cnf最大連接數(shù)是可以修改的,編輯my.cnf
如何解決MySQL超過最大連接數(shù)問題
max_user_connections 是 MySQL 用戶連接數(shù)的最大值設(shè)置,整段語句的意思是:服務(wù)器的 MySQL
的最大連接數(shù)參數(shù)設(shè)置不足。解決方法:修改 MySQL 安裝目錄下 my.ini 或者 my.cnf 文件內(nèi)的
max_user_connections 參數(shù)的數(shù)值,重啟 MySQL 服務(wù)器。
但是正常來說,MySQL默認(rèn)的100個(gè)連接數(shù)是足夠的。我們需要從程序上去考慮。MySQL的默認(rèn)最大連接數(shù)為100(N),實(shí)際給普通
用戶使用只有N-1個(gè),保留一個(gè)連接是留給超級(jí)管理員使用的,防止連接占滿了不會(huì)把管理員也踢出來。很多網(wǎng)站在運(yùn)行的時(shí)候都會(huì)出現(xiàn)連接數(shù)受限現(xiàn)象,我認(rèn)為
十之八九并非是網(wǎng)站的真實(shí)訪問量太大導(dǎo)致連接數(shù)超標(biāo),更多是因?yàn)槲覀冊(cè)谠O(shè)計(jì)網(wǎng)站程序的時(shí)候采用了不合理的設(shè)計(jì)架構(gòu)或數(shù)據(jù)結(jié)構(gòu)引起的。非正常連接超限可能原
因如下(天緣即時(shí)歸納未必完整或無錯(cuò)訛僅供參考):
類似人數(shù)、在線時(shí)間、瀏覽數(shù)等統(tǒng)計(jì)功能與主程序數(shù)據(jù)庫同屬一個(gè)數(shù)據(jù)空間時(shí)就很容易出現(xiàn)。
復(fù)雜的動(dòng)態(tài)頁尤其是用戶每次瀏覽都涉及到多數(shù)據(jù)庫或多表操作時(shí)候也很容易出現(xiàn)。
還有就是程序設(shè)計(jì)的不合理(比如復(fù)雜運(yùn)算、等待等操作放置在數(shù)據(jù)庫交互行為中間進(jìn)行),或者程序存在釋放BUG。
計(jì)算機(jī)硬件配置太低卻安裝太高版、太高配置的MySQL。
未采用緩存技術(shù)。
數(shù)據(jù)庫未經(jīng)過優(yōu)化或表格設(shè)計(jì)及其復(fù)雜。
等等一些原因,都會(huì)延長(zhǎng)數(shù)據(jù)庫的數(shù)據(jù)交互時(shí)間或增加交互次數(shù)。所以,如果大家遇到這類問題,首先要考慮程序是否存在BUG導(dǎo)致連接釋放失敗,
再次就是考慮優(yōu)化軟硬件。當(dāng)然修改MySQL連接數(shù)也是軟件優(yōu)化的操作方法之一,希望大家都能夠本著學(xué)習(xí)的態(tài)度通過研究一下自身的原因從而解決這一問題。
如果實(shí)在是找不到原因,那就只好先修改連接數(shù),暫緩定位真實(shí)原因了。
標(biāo)題名稱:mysql怎么改連接數(shù) mysql8修改最大連接數(shù)
URL鏈接:http://www.dlmjj.cn/article/doshggd.html