[轉]怎么查看和修改 MySQL 的最大連接數?

使用 MySQL 數據庫的站點,當訪問連接數過多時,就會出現 "Too many connections" 的錯誤。出現這種錯誤有兩種情況,一種是網站訪問量實在太大,服務器已經負擔不起,此時就應該考慮負載均衡或者其它減少服務器壓力的辦法。另一種情況就是 MySQL 的最大連接數設置得太小,當訪問量稍大就出現連接過多的錯誤。

  MySQL 默認的最大連接數為 100,可以在 mysql 客戶端使用以下命令查看


mysql> show variables like 'max_connections';

此命令將得到類似以下的輸出結果:


+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 2000 |
+-----------------+-------+
1 row in set (0.00 sec)

  要對 mysql 的最大連接數進行修改,只需要在 my.cnf 配置文件里面修改 max_connections 的值,然后重啟 mysql 就行。如果 my.ini 文件中沒有找到 max_connections 條目,可自行添加以下條目


max_connections = 200

?

mysql max_connections 最大連接數,用戶數

設置max_connections

(這個辦法在debian+mysql? Ver 12.22 Distrib 4.0.22, for pc-linux (i386)
里實驗了)
設置辦法是在my.cnf文件中,添加下面的最后紅色的一行:?
[mysqld]?
port=3306?
#socket=MySQL?
skip-locking?
set-variable = key_buffer=16K?
set-variable = max_allowed_packet=1M?
set-variable = thread_stack=64K?
set-variable = table_cache=4?
set-variable = sort_buffer=64K?
set-variable = net_buffer_length=2K?
set-variable = max_connections=32000?
(在院里的DELL機器mysql4.0里的語法不同
max_connecionts=2000
直接這么寫就好了



修改完畢后,重啟MySQL即可。當然,為了確保設置正確,應該查看一下max_connections。?

注意:?
1、雖然這里寫的32000。但實際MySQL服務器允許的最大連接數16384;?
2、除max_connections外,上述其他配置應該根據你們系統自身需要進行配置,不必拘泥;?
3、添加了最大允許連接數,對系統消耗增加不大。?
4、如果你的mysql用的是my.ini作配置文件,設置類似,但設置的格式要稍作變通。?

?

用mysqld --help 可以查看到max_connections 變量。 
或者 mysql -uuser -p
后mysql>show variables;
也會看到max_connections?。???

下面是修改張老師 的redhat9的方法:

先是mysql -uw01f -p
mysql>show variables;
看到max_connections 為100
mysql>exit;
vi /etc/my.cnf
??? [mysqld]
set-variable=max_connections=250? #加入這些內容
:wq

/etc/init.d/mysqld restart
好了,行了。



下面的是抄的,我用不了
mysql的最大連接數默認是100, 這個數值對于并發連接很多的數據庫應用是遠遠不夠的,當連接請求大于默認連接數后,就會出現無法連接數據庫的錯誤,因此我們需要把它適當調大一些, 有兩種辦法可以修改最大連接數,一種是修改safe_mysqld,另一種是直接修改原代碼并重新編譯。下面我們就分別介紹這兩種方法:?

1.修改safe_mysqld?
找到safe_mysqld編輯它,找到mysqld啟動的那兩行,在后面加上參數 :?

-O max_connections=1000?

例如 :(其中前面有---的是原來的內容,而+++是修改過以后的)?
--- safe_mysqld.orig Mon Sep 25 09:34:01 2000?
+++ safe_mysqld Sun Sep 24 16:56:46 2000?
@@ -109,10 +109,10 @@?
if test "$#" -eq 0?
then?
nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR /?
- --skip-locking >> $err_log 2>&1?
+ --skip-locking -O max_connections=1000 >> $err_log 2>&1?
else?
nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR /?
- --skip-locking "$@" >> $err_log 2>&1?
+ --skip-locking "$@" -O max_connections=1000 >> $err_log 2>&1?
fi?
if test ! -f $pid_file # This is removed if normal shutdown?
then?
然后關閉mysql重啟它,用?
/mysqladmin所在路徑/mysqladmin -uroot -p variables?
輸入root數據庫賬號的密碼后可看到?
| max_connections | 1000 |?
即新改動已經生效。?

2.修改原代碼?

解開MySQL的原代碼,進入里面的sql目錄修改mysqld.cc找到下面一行:?

{ "max_connections", (long*) &max_connections,1000,1,16384,0,1},?

把它改為:?

{ "max_connections", (long*) &max_connections,1000,1,16384,0,1},?

存盤退出,然后./configure ;make;make install可以獲得同樣的效果。

?

查看Mysql連接數
登錄到mysql客戶端后,使用status命令也能獲得thread連接數以及當前連接的id
或者用
Mysql代碼
??? show full processlist???
看一下所有連接進程,注意查看進程等待時間以及所處狀態 是否locked
如果進程過多,就把進程打印下來,然后查看
Mysql代碼
??? mysql -e 'show full processlist;' > 111??
查找非locked的進程,一般就是當前執行中卡死,導致后面的進程排隊的原因。
另外,修改mysql最大連接數的方法:
編輯MySQL(和PHP搭配之最佳組合)配置文件 
my.cnf 或者是 my.ini
在[MySQL(和PHP搭配之最佳組合)d]配置段添加:
Apache代碼
??? max_connections = 1000??
保存,重啟MySQL(和PHP搭配之最佳組合)服務。
然后用命令:
MySQL(和PHP搭配之最佳組合)admin -uroot -p variables
輸入root數據庫賬號的密碼后可看到
Linux代碼
??? | max_connections | 1000 |?


修改MySQL默認最大連接數
MYSQL數據庫安裝完成后,默認
最大連接數是100,一般流量稍微大一點的論壇或網站
這個連接數是遠遠不夠的,增加默認MYSQL連接數的方法有兩個
方法一:進入MYSQL安裝目錄 打開MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100?? 修改為 max_connections=1000 服務里重起MYSQL即可
方法二:MySQL的最大連接數默認是100客戶端登錄:mysql -uusername -ppassword
設置新的最大連接數為200:mysql> set GLOBAL max_connections=200
顯示當前運行的Query:mysql> show processlist
顯示當前狀態:mysql> show status
退出客戶端:mysql> exit
查看當前最大連接數:mysqladmin -uusername -ppassword variables

方法三:以centos 4.4 下面的mysql 5.0.33 手工編譯版本為例說明:
vi /usr/local/mysql/bin/mysqld_safe
找到safe_mysqld編輯它,找到mysqld啟動的那兩行,在后面加上參數 :
-O max_connections=1500
具體一點就是下面的位置:
用紅字特別說明:
then $NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking
-O max_connections=1500
>> $err_log 2>&1 else
eval "$NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking $args
-O max_connections=1500 >>
$err_log 2>&1"
保存。
# service mysqld restart
# /usr/local/mysql/bin/mysqladmin -uroot -p variables
輸入root數據庫賬號的密碼后可看到
max_connections 1500 即新改動已經生效。
還有一種方法,
修改原代碼:
解開MySQL的原代碼,進入里面的sql目錄修改mysqld.cc找到下面一行:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,
0},
把它改為:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1,
0},
存盤退出,然后./configure ;make;make install可以獲得同樣的效果。

?

1、查看當前所有連接的詳細資料:
mysqladmin -uroot -proot processlist
D:\MySQL\bin>mysqladmin -uroot -proot processlist
+-----+------+----------------+---------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+----------------+---------+---------+------+-------+------------------+
| 591 | root | localhost:3544 | bbs | Sleep | 25 | | |
| 701 | root | localhost:3761 | | uery | 0 | | show processlist |
+-----+------+----------------+---------+---------+------+-------+------------------+

2、只查看當前連接數(Threads就是連接數.):
mysqladmin -uroot -proot status
D:\MySQL\bin>mysqladmin -uroot -proot status
Uptime: 2102 Threads: 3 Questions: 15531 Slow queries: 0 Opens: 0 Flush tab
les: 1 Open tables: 61 Queries per second avg: 7.389

3、修改mysql最大連接數:
打開my.ini,修改max_connections=100(默認為100)。
命令: show processlist;?
如果是root帳號,你能看到所有用戶的當前連接。如果是其它普通帳號,只能看到自己占用的連接。?
show processlist;只列出前100條,如果想全列出請使用show full processlist;

?

?

?

?

轉載于:https://www.cnblogs.com/helloyb/p/3392458.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376321.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376321.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376321.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

對qps、tps、pv、uv的理解

QPS (Queries Per Second):每秒查詢數(個別地方叫每秒查詢率?每秒查詢率是個奇怪的東西,每小時時速?),表示系統在一秒內處理的查詢次數。 TPS(Transactions …

swift入門之TableView

IOS8更新了,oc還將繼續但新增了swift語言,能夠代替oc編寫ios應用,本文將使用swift作為編寫語言,為大家提供step by step的教程。 工具 ios每次更新都須要更新xcode,這次也不例外,但使用xcode6,須…

Training-ActionBar

閱讀:http://developer.android.com/training/basics/actionbar/index.html 對于API11以下的兼容: Update your activity so that it extends ActionBarActivity. For example: public class Main Activit yextends ActionBarActivity{...} In your mani…

Jmeter BeanShell學習(一) - BeanShell取樣器(一)

通過利用BeanShell取樣器設置請求發送的參數。 第一步:添加BeanShell取樣器 第二步:在BeanShell中輸入執行的代碼 log.info("腳本開始執行"); //意思是將字符串輸出到日志消息中 vars.put("username","123163.com");//…

【轉】關于Python腳本開頭兩行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件編碼類型...

原文網址:http://www.crifan.com/python_head_meaning_for_usr_bin_python_coding_utf-8/ #!/usr/bin/python 是用來說明腳本語言是python的 是要用/usr/bin下面的程序(工具)python,這個解釋器,來解釋python腳本&#…

分布式系統介紹-PNUTS

PNUTS是Yahoo!的分布式數據庫系統,支持地域上分布的大規模并發操作。它根據主鍵的范圍區間或者其哈希值的范圍區間將表拆分為表單元(Tablet),多個表單元存儲在一個服務器上。一個表單元控制器根據服務器的負載情況,進行…

Jmeter BeanShell學習(一) - BeanShell取樣器(二)

利用BeanShell取樣器獲取接口返回的JSON格式的結果,并將該結果寫入到文件。 第一步:添加BeanShell取樣器 前面幾個取樣器的內容查看: https://blog.csdn.net/goodnameused/article/details/96985514 第二步:查看返回的結果格式 …

在數據庫中outlet、code、outline為聯合組件。hibarnate插入可如此插入

hibarnate對象的映射文件如下 <id name"outlet" type"string"> <column name"OUTLET" length"10" /> <generator class"assigned" /> </id> <!-- <property name"code" type"…

日怎么沒人告訴我這博客可以改博文界面的顯示寬度的

于是我妥妥的回歸了。 weebly雖然定制功能強大&#xff0c;還能穿越時空發博文&#xff0c;但是太麻煩了&#xff0c;而且用著也不像一個博客。 既然解決了這個問題&#xff0c;那Lofter除了行間距也沒什么缺點了&#xff0c;接著用吧&#xff0c;反正weebly也傳不了大圖&#…

160 - 50 DueList.5

環境&#xff1a; Windows xp sp3 工具&#xff1a; Ollydbg exeinfope 0x00 查殼 可以看出程序有加殼&#xff0c;那么我們下一步就是脫殼了。 0x01 脫殼 看上去沒什么特別的地方&#xff0c;就直接 單步跟蹤法 來脫殼吧 近call F7&#xff0c;遠call F8 來到這里 哈&…

firefox瀏覽器中silverlight無法輸入問題

firefox瀏覽器中silverlight無法輸入問題今天用firefox瀏覽silverlight網頁&#xff0c;想在文本框中輸入內容&#xff0c;卻沒想到silverlight插件意外崩潰了。google一下&#xff0c;發現這是firefox的設置問題&#xff0c;解決方法如下&#xff1a; 1、在Firefox瀏覽器地址欄…

關鍵路徑的概念和算法

AOE網&#xff1a;在一個表示工程的帶權有向圖中&#xff0c;用頂點表示事件&#xff0c;用有向邊表示活動&#xff0c;邊上的權值表示活動的持續時間&#xff0c;稱這樣的有向圖叫做邊表示活動的網&#xff0c;簡稱AOE網。AOE網中沒有入邊的頂點稱為始點&#xff08;或源點&am…

160 - 51 DueList.6

環境&#xff1a; Windows xp sp3 工具&#xff1a; Ollydbg exeinfope 0x00 查殼 發現程序沒有加殼&#xff0c;那么我們可以直接分析了。 0x01 分析 運行程序看一看 看到錯誤信息的字符串后我們可以直接搜索了。 可以看到程序會比較輸入的長度是否為8位&#xff0c;如…

寬帶上行速率和下行速率的區別

本文由廣州寬帶網http://www.ymeibai.com/整理發布&#xff0c;廣州電信寬帶報裝&#xff0c;上廣州寬帶網。 我們一般所說的4M寬帶&#xff0c;6M寬帶&#xff0c;都是指寬帶的下行速率&#xff0c;可以理解為就是下載的速度&#xff0c;平時我們用迅雷、或者網頁下載軟件時&a…

LazyInitializationException--由于session關閉引發的異常

1,頁面中進行person.department.departmentName的讀取 2,Action 中只讀取了person&#xff0c;事務作用在Service的方法中 3,后臺會有org.hibernate.LazyInitializationException出現 因為&#xff1a;Action中Service方法結束之前&#xff0c;session已經關閉了轉載于:https:/…

160 - 52 egis.1

環境&#xff1a;windows xp 工具&#xff1a; 1、OllyDBG 2、exeinfo 3、IDA 0x00 查殼 加了UPX殼&#xff0c;那么就要脫殼了。可以使用單步法來脫殼。 UPX殼還是比較簡單的&#xff0c;開頭pushad&#xff0c;找個popad&#xff0c;然后就是jmp了。 然后就可以用OD來…

玩轉MySQL之Linux下的簡單操作(服務啟動與關閉、啟動與關閉、查看版本)

小弟今天記錄一下在Linux系統下面的MySQL的簡單使用&#xff0c;如下&#xff1a; 服務啟動與關閉 啟動與關閉 查看版本 環境 Linux版本&#xff1a;centeros 6.6&#xff08;下面演示&#xff09;&#xff0c;Ubuntu 12.04&#xff08;參見文章末尾紅色標注字體&#xff09; M…

實驗八第二題

轉載于:https://www.cnblogs.com/huangsilinlana/p/3411550.html

c++ boost多線程學習(一)

本次學習相關資料如下&#xff1a; Boost C 庫 第 6 章 多線程&#xff08;大部分代碼的來源&#xff09; Boost程序庫完全開發指南 - 深入C“準”標準庫 第三版 羅劍鋒著 頭文件&#xff1a; #include <stdio.h> #include <string.h> #include <boost\versio…

C#中什么是泛型

所謂泛型是指將類型參數化以達到代碼復用提高軟件開發工作效率的一種數據類型。一種類型占位符&#xff0c;或稱之為類型參數。我們知道一個方法中&#xff0c;一個變量的值可以作為參數&#xff0c;但其實這個變量的類型本身也可以作為參數。泛型允許我們在調用的時候再指定這…