mysql執(zhí)行語句后只有錯誤代碼,沒有錯誤信息的問題
問題說明
mysql數(shù)據(jù)庫在執(zhí)行完sql語句后,因語法錯誤,報錯時僅顯示錯誤代碼,沒有錯誤信息。
這個大部分原因是安裝數(shù)據(jù)庫時出現(xiàn)問題,/etc/my.cnf配置項(xiàng)不對。
有的人安裝的時候是使用源碼安裝,需要自己去配置,在這種情況下就有可能出現(xiàn)錯配。
本例中就是因?yàn)殄e配了/etc/my.cnf導(dǎo)致的問題。
如下圖所示,在執(zhí)行完語句后,僅顯示1075錯誤代碼,后面什么信息也沒有。
解決方案
第一步,先查看錯誤日志,具體錯誤日志的位置請根據(jù)實(shí)際情況尋找,本例中mysql錯誤日志文件位置在/var/log/mysqld.log,大部分使用rpm方式安裝的話,默認(rèn)也在這個位置。
第二步,查看具體錯誤日志,如下圖所示,明確提示了找不到errmsg.sys文件
# less /var/log/mysqld.log|grep -i error
第三步,根據(jù)錯誤日志,找到errmsg.sys文件具體位置。
使用whereis查看mysql相關(guān)的安裝路徑,再次找到errmsg.sys文件位置,如下圖所示,errmsg.sys文件位置在/usr/share/mysql/english
第四步,在/etc/my.cnf文件中增加lc-messages-dir=/usr/share/mysql配置,這里說下為什么是lc-messages-dir,是因?yàn)殄e誤日志里面提示了這個配置,因此加上這個配置,為什么路徑是/usr/share/mysql,這個是因?yàn)橐话闶莔ysql的主路徑,也就是basedir路徑,只要這個對了,文件自然能找到。
第五步,重啟mysql
# service mysqld restart
第六步,再次查詢剛剛的語句,查看結(jié)果,現(xiàn)在有錯誤信息了。
第七步,再次查看錯誤日志,可以看到剛剛的錯沒有了,到這一步errmsg.sys這個問題已經(jīng)解決了。如果你有興趣,可以接著往下看。
第八步,剛剛說了,到第七步,問題已經(jīng)解決了,但是本次測試意外的發(fā)現(xiàn)另外的錯,那這個錯和上面的errmsg.sys錯有什么關(guān)系,可以看到這個錯是找不到so文件。
再次返回查看配置文件,可以看到是因?yàn)檫@里的basedir配置的是/usr/bin/mysql,所以跟mysql相關(guān)的文件都會在這個路徑下面去找,但是errmsg.sys和現(xiàn)在的這個so文件并不在/usr/bin/mysql路徑下,所以歸根結(jié)底,還是basedir配置錯了,引起了連鎖反應(yīng),導(dǎo)致了一系列錯。
最終修改basedir配置項(xiàng),把這個注釋掉即可(使用rpm默認(rèn)安裝可以注釋掉)或者配置正確的basedir路徑(尤其是使用源碼自定義安裝的mysql數(shù)據(jù)庫一定要配置對basedir),本例中注釋掉basedir。
最后一步,重啟mysql,所有的錯都沒有了,如下圖所示。
總結(jié)
自定義安裝的mysql,/etc/my.cnf一定要配置對,不然會有很多意想不到的問題。
rpm默認(rèn)安裝的mysql,也檢查下/etc/my.cnf對不對,啟動完以后,查看mysql有沒有報錯。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
完美解決MySQL數(shù)據(jù)庫服務(wù)器CPU飆升問題
這篇文章主要介紹了解決 MySQL 數(shù)據(jù)庫服務(wù)器 CPU 飆升的方法,包括定位問題(如使用工具監(jiān)控、查看慢查詢?nèi)罩荆?yōu)化 SQL 查詢、調(diào)整配置參數(shù)、優(yōu)化數(shù)據(jù)庫架構(gòu)、檢查硬件資源、處理鎖競爭問題等,還通過電商業(yè)務(wù)系統(tǒng)的案例進(jìn)行了詳細(xì)分析及給出解決方法,最終優(yōu)化效果顯著2025-02-02Mysql安裝注意事項(xiàng)、安裝失敗的五個原因分析
這篇文章主要介紹了Mysql安裝注意事項(xiàng)、安裝失敗的五個原因分析,需要的朋友可以參考下2016-04-04超越MySQL 對流行數(shù)據(jù)庫進(jìn)行分支的知識小結(jié)
盡管MySQL是最受歡迎的程序之一,但是許多開發(fā)人員認(rèn)為有必要將其拆分成其他項(xiàng)目,并且每個分支項(xiàng)目都有自己的專長。該需求,以及 Oracle 對核心產(chǎn)品增長緩慢的擔(dān)憂,導(dǎo)致出現(xiàn)了許多開發(fā)人員感興趣的子項(xiàng)目和分支2012-01-01探討:sql插入空,默認(rèn)1900-01-01 00:00:00.000的解決方法詳解
本篇文章是對sql插入空,默認(rèn)1900-01-01 00:00:00.000的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06