為了一個小公司的一個錄入系統(tǒng),我在使用angular.js時锄奢,發(fā)現(xiàn)$http無法使用美尸,但由于急需,暫時沒有想到解決辦法斟薇,就急匆匆使用了 setinverter 這個函數(shù)來獲取數(shù)據(jù)庫中的數(shù)據(jù)师坎,遍歷出來;
因?yàn)槭窃缙诎姹镜腶ngular.js(1.5.7), 使用的http也是angular.js里自帶的模塊堪滨,因?yàn)樘脹]看angular胯陋,后來上網(wǎng)查資料才知道,原來,angular.js在1.6 版本后遏乔,http的成功和失敗的回調(diào)方法已經(jīng)改為了 then();
結(jié)果是可行的义矛,但是出現(xiàn)一種情況就是,能查到3張表盟萨,但是我需要同時查訊4張表凉翻,但是最后一張表的數(shù)據(jù)沒有顯示出來,我在遠(yuǎn)程數(shù)據(jù)庫中debug的時候捻激,看到數(shù)據(jù)庫顯示 too mach connect制轰;
too mach connect 的問題就是表現(xiàn)為你在遠(yuǎn)程數(shù)據(jù)庫上無法進(jìn)入數(shù)據(jù)庫,你無法通過正常的鍵入用戶名和密碼進(jìn)入數(shù)據(jù)庫來對數(shù)據(jù)庫進(jìn)行操作胞谭。
這里我想到的是高性能的問題垃杖,和高并發(fā)的問題,因?yàn)槲沂遣粩嘞驍?shù)據(jù)庫去發(fā)出請求丈屹,可以看成高并發(fā)這一類類似的問題调俘;
故事就這樣開始了,為了解決這個 too mach connect 這個問題旺垒,我決定一路走到黑彩库,先玩玩數(shù)據(jù)庫:
對于一個對后端攝入不深的前端同學(xué),看網(wǎng)上看到先蒋,有人推薦到說修改數(shù)據(jù)庫的配置侧巨,也就是修改數(shù)據(jù)庫的最大連接數(shù):
修改數(shù)據(jù)庫的最大連接數(shù):
在這里,可以分兩種情況來決定你是用修改數(shù)據(jù)庫配置方式直接還是在 mysql里面使用命令來直接修改配置鞭达;
如果你的數(shù)據(jù)庫在一直都是數(shù)據(jù)輸進(jìn),不斷地接受請求皇忿,不斷響應(yīng)用戶交互的畴蹭,這種情況下,無法直接停掉數(shù)據(jù)庫來只修改配置鳍烁,可以通過數(shù)據(jù)命令行來不安全修改叨襟;
如果你的產(chǎn)品還是上線,或者還沒被用戶使用幔荒,這種情況就是這直接修改數(shù)據(jù)庫的配置文件來修改最大連接數(shù)糊闽;
首先,可以查看一下自己數(shù)據(jù)庫的默認(rèn)配置爹梁;
進(jìn)如mysql 里使用命令:
mysql> show variables like ‘%max_connections%’;
這是我修改后的最大連接數(shù)右犹,原先我的默認(rèn)連接數(shù)是151的;
然后可以在etc/init.d/my.cnf? 或者etc/mysql/my.cnf;
找到
max_connections = xxxx;
直接修改就行姚垃;
另一種方式則是:
mysql命令行修改念链。
mysql -uuser -ppassword(命令行登錄MySQL)
mysql>show variables like ‘max_connections’;(查可以看當(dāng)前的最大連接數(shù))
msyql>set global max_connections=1000;(設(shè)置最大連接數(shù)為1000,可以再次查看是否設(shè)置成功)
mysql>exit(推出)
拓展:
查看當(dāng)前連接數(shù)(最高并發(fā)數(shù));
? ? ? ? ? ? ? ? ? ? ? ? mysql> show status like ‘Threads%’;
? ? Threads_connected 表示當(dāng)前連接時掂墓;
? ? Threads_running 表示并發(fā)數(shù)谦纱;
參照資料:
改變最大連接數(shù)? http://blog.csdn.net/sd4015700/article/details/50351045
重啟和關(guān)閉mysql http://blog.csdn.net/yonghutwo/article/details/52248864
查找文件:https://www.cnblogs.com/sunleecn/archive/2011/11/01/2232210.html