1. 程式人生 > >Navicat使用常見的兩個問題及解決方法,提高開發效率

Navicat使用常見的兩個問題及解決方法,提高開發效率

Navicat使用常見問題

在我們日常開發過程中,一般不會直接使用命令列來操作 MYSQL 資料庫,而會選擇一些圖形化介面去幫助我們來進行此類操作,常用的有:SQLyog(Logo也是小海豚),Navicat,或者直接使用編輯器自帶的圖形化介面工具。我這邊開發使用的是 Navicat,在日常使用的時候出現過一下的問題:

Too Many Connections - 1040

在 Navicat 的介面中,這是一個很討人厭的提示框,多人協作開發的時候經常出現。原因有二:

一是 Mysql 資料庫的預設最大連線數是:100,

二是 對於多人開發的單體專案來說,雖然我們同時在用的連線不會超過10個,理論上100 綽綽有餘,但是除了我們正在使用的連線以外,還有很大一部分 Sleep 的連線,這個才是真正的罪魁禍首。

分析到了問題的根源,我們就需要對症下藥,依次解決:

修改 Mysql 最大連線數量

首先檢視當前 Mysql 最大連線數量是多少:

show variables like '%max_connections%';

這裡我已經修改過了,所以是 1000,沒有改過的童鞋應該還是 100,

然後檢視從這次 mysql 服務啟動到現在,同一時刻並行連線數的最大值:

show status like 'Max_used_connections';

對於 Mysql 的最大連線數設定,在首次配置的時候設定一個較大的數值,以後在使用的過程中,週期的查詢 Max_used_connections 然後根據他的值和伺服器的效能確定一個最適合當前專案的最大連線數

最大連線數的修改有兩種方式

  1. 使用 sql 語句(立即生效,但伺服器重啟後失效):
set global max_connections = 1000;

  1. 修改 /etc/my.cnf.新增 max_connections = 1000 永久有效。重啟後生效

但更改最大連線數只能從表面上解決問題,隨著我們開發人員的增多,Sleep 連線也會更多,到時候萬一又達到了 1000 的上限,難道我們又得改成 10000 嗎?這顯然是非常不可取的。所以我們不僅要治標,還要治本。殺掉多餘的 Sleep 連線就是治本

殺掉Sleep連線

我們可以通過 show_processlist 命令來檢視當前的所有連線狀態

可以發現, Sleep 的連線佔了絕大多數。

Mysql 資料庫有一個屬性 wait_timeout 就是 sleep 連線最大存活時間,預設是 28800 s,換算成小時就是 8 小時,我的天吶!這也太長了!嚴重影響效能。相當於今天上班以來所有建立過而未關閉的連線都不會被清理。

執行命令:

show global variables like '%wait_timeout';

我們將他修改成一個合適的值,這裡我改成了 250s。當然也可以在配置檔案中修改,新增 wait_timeout = 250。這個值可以根據專案的需要進行修改,以 s 為單位。我在這裡結合 navicat 的超時請求機制配置了 240s。

執行命令:

set global wait_timeout=250;

這樣,就能從根本上解決 Too Many Connections 的問題了

正在準備...

我們在使用 Navicat 的時候,有時候查詢完一次資料之後,就去編寫程式碼,等下次回來的開啟表的時候就會出現:正在準備... 等字樣,這次查詢可能會消耗 20s 以上的時間,這是不能容忍的。

這個時候我們就需要想辦法解決他了,首先我想到的是 mysql 的 connection 連線被清理了,通過復現 正在準備... 並同時在 linux 通過 show processlist 命令檢視連線狀態發現,並不是。這個請求在正在準備的前10幾秒並沒有和 mysql 建立connection 連線。

那麼我分析可能是 navicat 和資料庫伺服器之間的通訊連線斷掉了導致了,而根據 navicat 文件說明,在連線高階設定這裡有一個保持連線間隔(官方文件-通過 ping 來保持連線。你可以在編輯框中設定 ping 與 ping 之間的間隔)的時長配置:將其設定成 240s。這樣每過240s,軟體就會像伺服器傳送心跳請求,以保證連線不被斷開。這樣我們就不會出現正在準備。。。等字樣了

相關推薦

Navicat使用常見問題解決方法提高開發效率

Navicat使用常見問題 在我們日常開發過程中,一般不會直接使用命令列來操作 MYSQL 資料庫,而會選擇一些圖形化介面去幫助我們來進行此類操作,常用的有:SQLyog(Logo也是小海豚),Navicat,或者直接使用編輯器自帶的圖形化介面工具。我這邊開發使用的是 Navicat,在日常使用的時候出現過一

Ubuntu16 安裝搜狗輸入法圖示解決方法

Ubuntu16安裝成功之後,安裝搜狗輸入法,直接到搜狗官網下載。 之後使用如下命令列安裝 sudo dpkg -i sogoupinyin_2.1.0.0086_amd64.deb* 1出現的問題及解決方法: 1 、在安裝過程中可能會出現問題。不用管。 2、安裝完成之後可能會有兩個輸入法圖示,此時,使用ps

C++常見錯誤解決方法持續更新

1.undefined reference to `[email protected]'| 可能的原因是程式沒有主函式導致的編譯錯誤 2.#include<iostream> #include<string> using namespac

Nginx常見的錯誤解決方法

1、Nginx 常見啟動錯誤  有的時候初次安裝nginx的時候會報這樣的錯誤  sbin/nginx -c conf/nginx.conf  報錯內容:sbin/nginx: error while loading shared libraries: libpcre.

常見錯誤分析解決方法

Such as :compile block ----Con_appError:make[1]: *** No rule to make target `Hai_Extern.obj', needed by `build/GXQ26_07B/gprs/MT6226o/lib/conn_app.lib'.  S

CSS常見相容性問題解決方法

最近在研究瀏覽器相容性問題,所以準備寫篇愽客記錄一下(會持續更新); 瀏覽器的相容性問題,通常是因為不同的瀏覽器對同一段程式碼有不同的解析,造成頁面顯示不統一的情況。 我們為了讓頁面形成統一的效果,要針對不同的瀏覽器或不同版本寫出對應可解析的CSS樣式,所以

安卓開發常見錯誤原因解決方法

做安卓開發一年半了,遇到過不少的問題,其中有些花了不少時間才得到解決,有些至今不知為何,也請高人指點迷津,為我撥雲見日~~有錯誤也多多包涵,幫我糾正~~ 1.更換安卓專案的庫檔案(即使庫檔案程

操作CoreData 常見的錯誤解決方法

. 使用Core Data時Model Class的定義: property必須是Objective C的物件型別,必須宣告為nonatomic & retain或 nonatomic ©在.m檔案中accessor方法用@dynamic, refenrence

Mysql常見錯誤提示解決方法

130 :檔案格式不正確。(還不是很清楚錯誤的狀況) 145 :檔案無法開啟。1005:建立表失敗。1006:建立資料庫失敗。 1007:資料庫已存在,建立資料庫失敗。 1008:資料庫不存在,刪除資料庫失敗。 1009:不能刪除資料庫檔案導致刪除資料

MySql 在Windows 7上安裝常見問題、解決方法

nec 註冊表 錯誤 cnblogs server chang mark 常見 sql 一、安裝MySQL數據庫(我當前的版本為8.0.11) ? 參見此博客:https://www.cnblogs.com/laumians-notes/p/9069498.html 二、徹

封裝Service層公用CRUD操作提高開發效率

專案架構: 專案採取前後分離開發模式,前端:antd pro 2.0,後端:spring cloud + spring boot + JPA。資料交換:json 最近在專案組開發中使用到JPA,初次使用JPA感覺很強大,解放了repository層的實現,提高了開發效率。

WebStorm 建立程式碼live template程式碼片段提高開發效率

webstrom 使用itar + tab 按鍵 可以方便的生成foreach 的程式碼片段 經常寫function 第一行經常是var that =this; 重複敲很麻煩, 可以新增一個程式碼片段 方法如下: alt+ctrl+s 調出setting,搜尋live te

Eclipse、Myeclipse快捷鍵提高開發效率

Ctrl+D: 刪除當前行 Ctrl+Alt+↓ 複製當前行到下一行(複製增加)Ctrl+Alt+↑ 複製當前行到上一行(複製增加)Alt+↓ 當前行和下面一行互動位置(特別實用,可以省去先剪下,再貼上了)Alt+↑ 當前行和上面一行互動位置(同上)Alt+← 前一個編輯的頁面Alt+→ 下一個編輯的頁面(當

框架--加強綜合能力提高開發效率

框架 開發效率 開發人員 tro 優點 提高 讀取數據 圖層 工作 python常用的web開發框架:flask、django、tornado 使用框架的優點:穩定性和可擴展性強,可以降低開發難度,提高開發效率,提高代碼的復用率,避免重復造輪子 使用框架對開發人員的綜合能力

使用IntelliJ IDEA(androidstudio前身)開發android移動應用前的基本設定提高開發效率

2、介面字型大小設定 File選單->Settings->Appearance->Override default fonts by(not recommended): Name:宋體(建議選擇中文,防止出現中文亂碼。起初的中文字型名稱為空白,只

Android 專案模組化開發提高開發效率

把Demo放在第一!!! 隨著需求的增加,程式碼量隨之變得龐大、臃腫。於是產生了很多影響開發效率的問題。 例如: 1. 方法數超過65K。 2. 程式編譯執行一次至少1-2分鐘。 3. 程式碼變得難以管理,影響閱讀及修改效

熟悉快捷鍵提高開發效率Python自帶的IDLE常用快捷鍵匯總

cto nag shadow -o 51cto 習慣 代碼 .com 不知道 IDLE是Python自帶的coding小工具,對於初學者來說IDLE非常方便實用,但大部分人並不知道它的一些常用快捷鍵。如果能熟練掌握這些常用快捷鍵的話,無疑會使你的代碼編寫效率大大提升。下面列

MyBatis多接口參數報錯:Available parameters are [0, 1, param1, param2] 解決方法

pan 解決 而且 crm ger int mybatis 添加 為什麽 1. sql語句如下:  SELECT * FROM tb_crm_user WHERE id = #{userId, jdbcType=INTEGER} AND

loadrunner執行場景時常見錯誤解決方法

目錄   1、Error -27727:.3 2、Error -27728:.3 3、Error -27791:.3 4、Error -27492:.4 5、Error -27498:.4 6、Error -26612:.4