中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

老版本mysql的報錯:ERROR 1046 (3D000): No database selected(BUG)怎么解決

發布時間:2021-09-16 16:25:46 來源:億速云 閱讀:501 作者:chen 欄目:MySQL數據庫

本篇內容主要講解“老版本mysql的報錯:ERROR 1046 (3D000): No database selected(BUG)怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“老版本mysql的報錯:ERROR 1046 (3D000): No database selected(BUG)怎么解決”吧!


開發給到一條sql,要對項目的各個庫做批量的update,寫在腳本里之后,執行時發現失敗,報錯
ERROR 1046 (3D000): No database selected,發現有指定庫名,產生疑問。
確定已經指定庫名之后,然后改寫成select做了查詢,發現依然報這個錯。
老版本mysql的報錯:ERROR 1046 (3D000): No database selected(BUG)怎么解決

再細看sql,發現unhex函數的寫法不嚴謹,即括號沒有緊跟,
也就是說,需要用unhex()替代unhex ()。

繼續做了個測試,發現報錯信息相同,但是毫不相干:
既然是函數寫法不規矩,怎么和是否選擇數據庫有關?

  1. mysql> SELECT NOW ();

  2. ERROR 1046 (3D000): No database selected


確定了一下DB版本:

  • mysql> SELECT version();

  • +-----------------------+

  • | 5.0.51a-24+lenny2-log | 

  • +-----------------------+

  • 1 row in set (0.00 sec)

遠古版本,估計bug較多,換了一個mysql5.5的版本做測試:
發現報錯正常:

  1. mysql> SELECT NOW ();

  2. ERROR 1305 (42000): FUNCTION now does not exist


大概猜測是老版本(mysql5.0)的一個BUG。5.1未做測試。

但無論是否是老版本還是新版本,函數名后不緊跟括號都會報錯,只不過5.0拋出的錯誤比較奇葩,讓人看不懂。
當然,在sql_mode里添加“IGNORE_SPACE”既可以忽略此類問題,但是不推薦:

  1. mysql> SELECT VERSION();

  2. +-----------------------+

  3. | VERSION()             |

  4. +-----------------------+

  5. | 5.0.51a-24+lenny2-log | 

  6. +-----------------------+

  7. 1 row in set (0.00 sec)



  8. mysql> SELECT NOW ();   

  9. ERROR 1046 (3D000): No database selected



  10. mysql> SHOW VARIABLES LIKE 'sql_mode';

  11. +---------------+-------+

  12. | Variable_name | Value |

  13. +---------------+-------+

  14. | sql_mode      |       | 

  15. +---------------+-------+

  16. 1 row in set (0.00 sec)



  17. mysql> SET @@session.sql_mode='IGNORE_SPACE';

  18. Query OK, 0 rows affected (0.00 sec)



  19. mysql> SELECT NOW ();     

  20. +---------------------+

  21. | NOW ()              |

  22. +---------------------+

  23. | 2016-03-18 02:00:14 | 

  24. +---------------------+

  25. 1 row in set (0.00 sec)


到此,相信大家對“老版本mysql的報錯:ERROR 1046 (3D000): No database selected(BUG)怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新余市| 安新县| 普兰县| 洞口县| 安义县| 兴安盟| 奇台县| 定结县| 崇仁县| 新乐市| 那曲县| 徐汇区| 凤翔县| 柯坪县| 南陵县| 辰溪县| 宾川县| 彰化市| 长治市| 凤台县| 郓城县| 宾阳县| 江油市| 九龙县| 宜宾县| 崇阳县| 婺源县| 鸡东县| 收藏| 江津市| 泾阳县| 青铜峡市| 罗平县| 晴隆县| 金山区| 三穗县| 石城县| 玛曲县| 公安县| 白沙| 舞阳县|