navicat連接數據庫報錯 navicat新建數據庫報錯



文章插圖
navicat連接數據庫報錯 navicat新建數據庫報錯

文章插圖
今天本是晴天,到了下午天一下子暗起來了,不久便下起了小雨,沒辦法外出,就在家鼓搗起了MySQL數據庫服務 。
前一段時間做內訓,演示數據庫復制服務,通過數據庫客戶端工具Navicat Premium導入樣例數據庫時,只導入了數據庫結構,數據卻一條都沒導入,當時就覺得納悶,好在不影響演示,打算有空了查一下 。今天恰好有點時間,從下午四點多,一直鼓搗到晚上,差不多搞明白了原因,同時也嘗試了通過mysql數據庫服務的參數調優來提高大數據量的導入性能 。
01 實驗環境
1、本地win10,需要安裝并配置好mysql,怎么安裝百度查;
2、安裝客戶端工具Navicat Premium,怎么安裝百度查;
3、華為云&天翼云上開通mysql數據庫服務,我選擇最低配1c2g,SAS盤,并配置了2M的EIP;
4、下載mysql示例數據庫,大概有近400萬條數據,具體下載地址忘了,[email protected]
02 Navicat 導入數據失敗
先從日志里查找原因,提示是語法錯誤,不斷的去嘗試,發現在Navicat工具的mysql命令行窗口,僅僅輸入source命令居然也報錯,百思不得其解,各種百度,可能的原因是source命令是mysql客戶端的工具集,Navicat可能不支持,要導入還是要直接在命令行窗口執行 。
03 本地批量數據導入
【navicat連接數據庫報錯 navicat新建數據庫報錯】1、以系統管理員的權限打開cmd窗口;
2、運行 net start mysql,顯示“服務已經啟動成功”,如下圖:
3、進入到employees樣例數據庫文件夾,執行導入數據庫命令:
mysql -h 125.124.74.17 -P 8635 -uroot [email protected] < employees.sql“<”符號表示導入數據庫文件,執行結果如下:
圖中導入數據成功,耗時4分42秒,通過Navicat工具能夠直觀的看到導入的數據庫、表、視圖及數據等,如下圖:
04 參數調優
通過不斷地嘗試,針對大數據量的批量導入,在華為云&天翼云服務端可以調優的參數有2個,分別是innodb_flush_log_at_trx_commit和bulk_insert_buffer_size,我們可以在華為云&天翼云mysql服務的參數組界面修改參數,如下圖:
innodb_flush_log_at_trx_commit該參數控制重做日志寫入磁盤的過程,系統默認為1,表示事務提交時,會將重做日志緩沖寫入磁盤,并且立即刷新.也即是說一旦事務完成,數據立即寫盤,以確保數據不會丟失 。但對于批量導入大量數據的情況,會導致頻繁寫盤,影響導入性能 。我們這里將該參數設置為0,表示每間隔1秒再寫盤 。這里我們把參數從1改為0,如圖:
bulk_insert_buffer_size用來緩存批量插入數據的時候臨時緩存寫入數據,大數據的sql文件能達到幾百M乃至上G,默認8M,確實有點小,這里我們改到120M 。
修改參數后保險期間需重啟數據庫實例 。
05 性能優化效果
先是修改了innodb_flush_log_at_trx_commit參數,導入數據耗時00:04:14,快了28秒;
然后再修改bulk_insert_buffer_size參數,耗時00:03:42,此次調優提升了32秒;
相比沒有調優之前,整體快了60秒,相當于性能提升了了