MySQL配置和优化

一、查看配置

查看binlogshow variables like 'log_%';:

  • 查看sql_mode的语法

    1
    2
    select @@GLOBAL.sql_mode;
    select @@SESSION.sql_mode;
  • 修改sql_mode的语法

    1
    2
    SET GLOBAL sql_mode = 'modes';
    SET SESSION sql_mode = 'modes';

二、优化

三、常见报错

3.1 mysql 5.7版本报错问题

mysql5.7默认启用了严格模式,使用5.7会发生很多旧版本sql报错问题,具体可以参阅MySQL 5.7版本新特性连载.

1) datetime等时间不能插入

切忌不要插入 ‘0000-00-00’ 类似这样0开头的时间格式,5.7下是写不进入的,要优化改成null 或者其他正常的时间;

2) 聚合错误SELECT list is not in GROUP BY clause and contains nonaggregated

在5.7中执行语句:

1
SELECT * FROM `m_job_op` group by stu_no

如果一定要使用,可以这么修改:

1
2
-- 临时修改
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
1
2