這篇文章將為大家詳細講解有關(guān)MySQL中常見問題有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
西華網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),西華網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為西華成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的西華做網(wǎng)站的公司定做!
1、默認編碼集問題
在做前臺數(shù)據(jù)展示的時候,查詢?nèi)縮elect * from t_news可以查到所有內(nèi)容。然后參數(shù)化查詢的時候就不行。比如:
Select * from t_news where title like ‘%源代碼教育%’;查到0條數(shù)據(jù)。
Select * from t_news where id = 1。 查詢到1條數(shù)據(jù)。
注意標紅字段,這是我修改之后的,原來都是latin1。
解決辦法:
Windows下MySQL的配置文件是my.ini,一般會在安裝目錄的根目錄。
Linux下MySQL的配置文件是my.cnf,一般會放在/etc/my.cnf,/etc/mysql/my.cnf。如果找不到,可以用find命令查找。
打開my.ini/my.cnf修改以下兩個字段。
Ps:修改配置文件過后需要重啟mysql。
2、數(shù)據(jù)不回滾
在編程的時候,spring配置了事務(wù),但出現(xiàn)異常時候數(shù)據(jù)庫的數(shù)據(jù)依然改變。在確認事務(wù)和代碼配置沒有問題的情況下,我們把可能性專項數(shù)據(jù)庫。我們使用”Navicat”工具設(shè)計表,在”選項”一欄中我們發(fā)現(xiàn)表使用的存儲引擎是MyISAM。
MyISAM不支持事務(wù),回滾將造成不完全回滾,不具有原子性。
將MyISAM改為InnoDB。
同樣在MySQL的配置文件(my.ini)中有默認的存儲引擎。在創(chuàng)建表的時候若沒有特別聲明,將使用默認的存儲引擎。
3、優(yōu)化導(dǎo)入大量數(shù)據(jù)
在工作中我們難免會遇到數(shù)據(jù)的大量導(dǎo)入的情況。比如需要查詢以前備份的數(shù)據(jù),將真實數(shù)據(jù)導(dǎo)入到本地做測試,定期將數(shù)據(jù)導(dǎo)入到備份數(shù)據(jù)庫等等業(yè)務(wù)場景。
MySQL提供了load data infile的導(dǎo)入方式。但是配置不恰當同樣會導(dǎo)致導(dǎo)入速度不快。
解決方案:
將后面的參數(shù)值調(diào)大,一般為物理內(nèi)存的百分之80%。但是32位系統(tǒng)會被限制為2-3.5G。
4、開啟自定義函數(shù)功能(云數(shù)據(jù)庫)
有時候我們運行別人的代碼,或者移植服務(wù)器的時候可能會遇到數(shù)據(jù)庫以前定義的函數(shù)不能使用的情況。尤其是與數(shù)據(jù)庫,默認是沒有開啟函數(shù)功能,導(dǎo)致函數(shù)不執(zhí)行。
首先我們查看函數(shù)功能是否開啟。如下圖:
這里自定義函數(shù)功能默認是關(guān)閉狀態(tài)。
解決方案:使用”set global log_bin_trust_function_creators = 1;”開啟自定義函數(shù)功能。
再次查詢:
但是這種方式只是一個零時解決方案,在MySQL重啟以后,功能又會默認關(guān)閉。
要永久開啟自定義函數(shù)功能,需要在配置文件中加入”log-bin-trust-function-creators=1”。
5、linux環(huán)境下表名大小寫問題
在linux系統(tǒng)環(huán)境下,MySQL表名默認區(qū)分大小寫。有時候表名中若輸錯一個大寫字母而導(dǎo)致查詢不出來的情況。
解決辦法:在my.cnf配置文件最后添加”lower_case_table_names=1”。然后重啟MySQL。
“l(fā)ower_case_table_names=1 ”這句話的意思是將輸入語句強制轉(zhuǎn)換為小寫,再執(zhí)行語句。
關(guān)于“MySql中常見問題有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。