同事反映,客户的一套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

原文:https://www.cnblogs.com/FengGeBlog/p/9879070.html

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐