mysql最大連接數(最大併發數)默認爲100,這個數值對應併發很多的數據庫遠遠不夠,尤其電商行業,當連接請求大於默認連接數後,就會出現無法連接數據庫的錯誤,因此可以把它適當調大些
linux服務器中,改my.cnf中的值
my.cnf 中找到段 [mysqld],在其中添加一行
max_connections=200 //改成你想要的值
注意:這裏有人說改成set-variables=max_connections=200,但我用這種方式mysql服務起不來,修改了下邊那7種可能的原因還是不行。
注意:這裏修改了my.cnf可能導致mysql服務起不來
網上說的原因有這幾種
1.可能是/usr/local/mysql/data/rekfan.pid文件沒有寫的權限
解決方法 :給予權限,執行 “chown-R mysql:mysql/var/data”
“chmod -R 755 /usr/local/mysql/data” 然後重新啓動mysqld!
2.可能進程裏已經存在mysql進程
解決方法:用命令“ps -ef|grep mysqld”查看是否有mysqld進程,如果有使用“kill -9 進程號”殺死,然後重新啓動mysqld!
3.可能是第二次在機器上安裝mysql,有殘餘數據影響了服務的啓動。
解決方法:去mysql的數據目錄/data看看,如果存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。本人就是使用第三條方法解決的 !http://blog.rekfan.com/?p=186
4.mysql在啓動時沒有指定配置文件時會使用/etc/my.cnf配置文件,請打開這個文件查看在[mysqld]節下有沒有指定數據目錄(datadir)。
解決方法:請在[mysqld]下設置這一行:datadir = /usr/local/mysql/data
5.skip-federated字段問題
解決方法:檢查一下/etc/my.cnf文件中有沒有沒被註釋掉的skip-federated字段,如果有就立即註釋掉吧。
6.錯誤日誌目錄不存在
解決方法:使用“chown” “chmod”命令賦予mysql所有者及權限
解決方法:關閉它,打開/etc/selinux/config,把SELINUX=enforcing改爲SELINUX=disabled後存盤退出重啓機器試試。
重啓mysql服務
service mysqld restart
查看
mysqld -uroot -p variables | grep max_connections
輸入root賬號的密碼可以看見
| max_connections | 200 |
或者
mysql -uroot -p
輸入root賬號的密碼,執行show variables like 'max_connections'
請人說mysql最大連接數也就4000
mysqld實際上允許max_connections+1個客戶端進行連接。額外的連接保留給具有SUPER權限的賬戶。通過爲系統管理員而不是普通用戶授予SUPER權限(普通用戶不應具有該權限),系統管理員能夠連接到服務器,並使用SHOW PROCESSLIST來診斷問題,即使已連接的無特權客戶端數已達到最大值也同樣。請參見13.5.4.16節,“SHOW PROCESSLIST語法”。
MySQL能支持的最大連接數取決於給定平臺上線程庫的質量。Linux或Solaris應能支持500-1000個併發連接,具體情況取決於RAM容量,以及客戶端正在作什麼。MySQL AB提供的靜態Linux庫能支持高達4000個連接。