修正mysqlcc在MySQL 5.0上常報的 Table ‘xxx’ doesn’t exist 錯誤

來源:互聯網
上載者:User

公司上了MySQL 5.0, 隨之而來的不是用的有多爽的問題, 而是一直用的很順手的mysqlcc...不行了, 其表現形式為經常會在狀態列中提示 "[192.168.22.72] ERROR 1146: Table 'rimkpi.1' doesn't exist" 之類的。 選出資料來也不能在表格中直接修改了,到底mysqlcc出了啥問題呢?
 
經過觀察,發現在MySQL 5.0上 EXPLAIN 語句的結果和4.1一下的版本不同了。4.1以前的返回的結果第一個欄位是tablename, 而4.1以後和5.0的返回的是id號(一般情況下就是1了),第三個欄位才是tablename。看來是這裡出了問題,不過怎麼會在4.1上可以,5.0反而不行了呢? 很不爽,於是去MySQL的官方網站把mysqlcc的source拖了一份下來,用Source-Navigator跟了一把,發現原來是在CQueryWindow.cpp的execQuery的方法(line 447)中的一段白癡代碼:

 

default_table = explain_query->row( mysql()->mysql()->version().major >= 4 && 
    mysql()->mysql()->version().minor >= 1 ? 2 : 0);

 

如果版本號碼是4.1或者5.1的話,這個判斷的結果是2;而如果版本號碼是5.0的話,結果就是0了。正確的代碼至少也應該是

default_table = explain_query->row(
    ( mysql()->mysql()->version().major == 4 && mysql()->mysql()->version().minor >= 1 ) || 
    ( mysql()->mysql()->version().major >= 5 ) ? 2 : 0);

 
真是...大概開源就這點好處了。 mysqlcc現在已經不再繼續維護了,看來只能自己找到mysql的開發包重新編譯個自用版本的mysqlcc了,哈哈

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.