修正mysqlcc在MySQL 5.0上常报的 Table 'xxx' doesn't exist 错误
公司上了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了,哈哈
轉載于:https://www.cnblogs.com/passos/archive/2006/04/19/379228.html
總結
以上是生活随笔為你收集整理的修正mysqlcc在MySQL 5.0上常报的 Table 'xxx' doesn't exist 错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: String和string的区别
- 下一篇: linux cmake编译源码,linu