【MySQL】老版本mysql奇怪的報錯:ERROR 1046 (3D000): No database selected(BUG)
開發給到一條sql,要對專案的各個庫做批次的update,寫在指令碼里之後,執行時發現失敗,報錯
ERROR 1046 (3D000): No database selected,發現有指定庫名,產生疑問。
確定已經指定庫名之後,然後改寫成select做了查詢,發現依然報這個錯。
再細看sql,發現unhex函式的寫法不嚴謹,即括號沒有緊跟,
也就是說,需要用unhex()替代unhex ()。
繼續做了個測試,發現報錯資訊相同,但是毫不相干:
既然是函式寫法不規矩,怎麼和是否選擇資料庫有關?
-
mysql> SELECT NOW ();
- ERROR 1046 (3D000): No database selected
確定了一下DB版本:
- mysql> SELECT version();
- +-----------------------+
-
| 5.0.51a-24+lenny2-log |
- +-----------------------+
- 1 row in set (0.00 sec)
發現報錯正常:
-
mysql> SELECT NOW ();
- ERROR 1305 (42000): FUNCTION now does not exist
大概猜測是老版本(mysql5.0)的一個BUG。5.1未做測試。
但無論是否是老版本還是新版本,函式名後不緊跟括號都會報錯,只不過5.0丟擲的錯誤比較奇葩,讓人看不懂。
當然,在sql_mode裡新增“IGNORE_SPACE”既可以忽略此類問題,但是不推薦:
- mysql> SELECT VERSION();
- +-----------------------+
- | VERSION() |
- +-----------------------+
- | 5.0.51a-24+lenny2-log |
- +-----------------------+
- 1 row in set (0.00 sec)
-
-
-
mysql> SELECT NOW ();
-
ERROR 1046 (3D000): No database selected
-
-
-
mysql> SHOW VARIABLES LIKE 'sql_mode';
-
+---------------+-------+
-
| Variable_name | Value |
-
+---------------+-------+
-
| sql_mode | |
-
+---------------+-------+
- 1 row in set (0.00 sec)
-
-
-
mysql> SET @@session.sql_mode='IGNORE_SPACE';
-
Query OK, 0 rows affected (0.00 sec)
-
-
-
mysql> SELECT NOW ();
-
+---------------------+
-
| NOW () |
-
+---------------------+
-
| 2016-03-18 02:00:14 |
-
+---------------------+
-
1 row in set (0.00 sec)
作者微信公眾號(持續更新)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-2059201/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DZ論壇MySQL Query Error Errno:1046錯誤MySqlError
- MYSQL SOURCE報錯 ERROR: ASCIIMySqlErrorASCII
- mysql報錯ERROR 1093MySqlError
- 一看便知linux下mysql報錯ERROR 1044: Access denied for user: '@localhost' to database 'mysql'LinuxMySqlErrorlocalhostDatabase
- MySQL報錯 Error_code: 1045MySqlError
- 網站報錯:“Database Server Error”網站DatabaseServerError
- 【MySQL】部分5.6版本罕見覆制報錯 ERROR 1837MySqlError
- MySQL error 錯 誤 碼MySqlError
- Mysql報錯Fatal error:Can't open and lock privilege tablesMySqlError
- Mysql資料庫報ERROR 1045 (28000)報錯及MySQL忘記密碼找回MySql資料庫Error密碼
- MySQL報錯Table 'plugin' is read only [ERROR] Can't open the mysql.plugin table.MySqlPluginError
- Laravel對不同版本的MySQL字元編碼報錯問題LaravelMySql字元
- MySQL報錯ERROR 2013 (HY000): Lost connection to MySQL server during queryMySqlErrorServer
- MySQL5.6:mysql_secure_installation 報錯ERROR 2002 (HY000)MySqlError
- MySQL UDF的除錯方式 - debugview (轉)MySql除錯View
- MySQL 5.7.17 安裝報錯SSL error: Unable to get private key fromMySqlError
- MySQL 5.5 原始碼安裝報錯"[ERROR] Can't start server"MySql原始碼ErrorServer
- mysql登入報錯提示:ERROR 1045 (28000)的解決方法MySqlError
- MySQL "ERROR 1010(HY000):Error dropping database(canMySqlErrorDatabase
- mysql執行報錯mysql.sockMySql
- MySQL 8.0版本連線報錯:Could not create coMySql
- 關於Mysql5.7高版本group by新特性報錯MySql
- php5.4.13版本bug報錯PHP
- MySQL:一個奇怪的hang案例MySql
- 遇到mysql的奇怪問題了MySql
- MySQL複製的奇怪問題MySql
- MysqL錯誤之_ERROR! MySQL server PID file could not be found!MySqlErrorServer
- MySQL報錯'ERROR 2002 (HY000): Can't connect to local MySQL server through'MySqlErrorServer
- Mysql8.0 報錯MySql
- MySQL ERROR 1698 (28000) 錯誤MySqlError
- MySQL 啟動報錯 error while loading shared librariesMySqlErrorWhile
- 【Mysql】into outfile報錯的問題MySql
- mysql 5.6.25報錯ERROR 1372 (HY000): Password hash 的一點思考MySqlError
- MySQL 5.6複製報錯Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND;MySqlError
- MYSQL5.7.22全庫備份匯入MYSQL8.0.20報錯ERROR3554MySqlError
- MySQL8.0.28命中[ERROR][MY-013183]報錯案例分析MySqlError
- mysql執行sql指令碼報錯ERROR 1366 (HY000) 解決MySql指令碼Error
- MySQL 5.7 多主複製報錯Coordinator stopped because there were error(s)MySqlError