MySQL SELECT語句中只能輸出1000行數據的原因


同事反映,客戶的一套MySQL生產庫,執行SELECT.. INTO OUTFILE語句只能導出1000行

最初以為是系統參數被重新設置了,建議他更改系統參數

mysql> set global sql_select_limit=50000000;
Query OK, 0 rows affected (0.00 sec)

同事反映,沒有生效

登陸到數據庫,查看系統參數,發現全局的參數已經生效

mysql> show global variables like 'sql_select_limit';
+------------------+----------+
| Variable_name    | Value    |
+------------------+----------+
| sql_select_limit | 50000000 |
+------------------+----------+
1 row in set (0.00 sec)

查看會話級參數,發現依然是1000

mysql> show session variables like 'sql_select_limit';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| sql_select_limit | 1000  |
+------------------+-------+
1 row in set (0.00 sec)

查看官方文檔,發現當啟動數據庫時指定了--safe-updates參數,當會話連接到數據庫后,會將sql_select_limit參數設為1000

When you use the --safe-updates option, mysql issues the following statement when it connects to
the MySQL server:
SET sql_safe_updates=1, sql_select_limit=1000, max_join_size=1000000;

重新啟動數據庫,去掉--safe-updates參數,數據庫恢復正常
mysqld_safe --defaults-file=/etc/my.cnf &

我也按照上面的指示操作,成功了。

摘選自:https://blog.csdn.net/liqfyiyi/article/details/72137652


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM