1,创建函数时:This function has none of DETERMINISTIC, NO SQL
历史解决方法:
mysql> show variables like 'log_bin_trust_function_creators'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin_trust_function_creators | OFF | +---------------------------------+-------+ mysql> set global log_bin_trust_function_creators=1; mysql> show variables like 'log_bin_trust_function_creators'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin_trust_function_creators | ON | +---------------------------------+-------+
彻底解决方法:
在mysql配置文件my.inf 中加入 log_bin_trust_function_creators=1
原因:
数据库开启了bin-log, 我们就必须指定我们的函数是否是
1 DETERMINISTIC 不确定的
2 NO SQL 没有SQl语句,当然也不会修改数据
3 READS SQL DATA 只是读取数据,当然也不会修改数据
4 MODIFIES SQL DATA 要修改数据
5 CONTAINS SQL 包含了SQL语句
2,mysql 执行计划无法创建
解决方法1:
mysql> show variables like '%event%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | OFF | +-----------------+-------+ 1 row in set (0.00 sec)mysql> set global event_scheduler = on;
Query OK, 0 rows affected (0.00 sec)
解决方法 2,彻底结局
在mysql配置文件my.inf 中加入event_scheduler=1
3,linux下mysql区分大小写
在mysql配置文件my.inf 中加入 lower_case_table_names=1 不区分大小写
lower_case_table_names=1
其中0:区分大小写,1:不区分大小写
4,查询时数据报错:com.mysql.jdbc.PacketTooBigException: Packet for query is too large
原因:mysql max_allowed_packet 设置的太小临时解决方法:set global max_allowed_packet = 1010241024*10
侧地解决方法:修改配置文件 my.inf 没的话 添加有的话直接修改
max_allowed_packet=100M
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于