?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
  
 
 
timestamp(0) DEFAULT NULL MYSQL异常处理 Invalid default value for *
 
#1. 设置会话explicit_defaults_for_timestamp(对当前会话有效)
mysql> SET SESSION explicit_defaults_for_timestamp = on;
 
#2. 设置全局explicit_defaults_for_timestamp(对所有新建立的会话生效,重启数据库后失效)
mysql> SET GLOBAL explicit_defaults_for_timestamp = on;
 
#3. 修改数据库配置文件windows:my.ini | linux:my.cnf (永久生效)
#找到[mysqld]在下面新配置
//----------------内容如下  begin
[mysqld]
 
explicit_defaults_for_timestamp = on
//----------------内容如下  end
 
 
 
设置GROUP_CONCAT() 字段最大支持长度
 
#1. 查询 GROUP_CONCAT() 字段最大支持长度
mysql> SHOW VARIABLES LIKE 'group_concat_max_len';
 
#2. 设置全局group_concat_max_len(对所有新建立的会话生效,重启数据库后失效)
mysql> SET GLOBAL group_concat_max_len = 102400;
 
#3. 设置会话group_concat_max_len(对当前会话有效)
mysql> SET SESSION group_concat_max_len = 102400;
 
#3. 修改数据库配置文件windows:my.ini | linux:my.cnf (永久生效)
#找到[mysqld]在下面新配置
//----------------内容如下  begin
[mysqld]
 
group_concat_max_len = 102400
//----------------内容如下  end
 
 
 
设置sql_mode参数
#1. 查看当前会话sql_mode
mysql> SELECT @@GLOBAL.sql_mode;
//查询结果如下
+------------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode                                                                                                      |
+------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
 
#2. 查看全局sql_mode
mysql> SELECT @@SESSION.sql_mode;
//查询结果如下
+------------------------------------------------------------------------------------------------------------------------+
| @@SESSION.sql_mode                                                                                                     |
+------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
 
 
#3. 设置全局sql_mode(对所有新建立的会话生效,重启数据库后失效)
mysql> SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
 
#4. 设置会话sql_mode(对当前会话有效)
mysql> SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
 
 
#5. 修改数据库配置文件windows:my.ini | linux:my.cnf (永久生效)
#找到[mysqld]在下面新配置
//----------------内容如下  begin
[mysqld]
 
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
//----------------内容如下  end
 
 
 
 
mysql密码强制修改:
#1. 找到[mysqld]在下面新配置
//----------------内容如下  begin
[mysqld]
skip-grant-tables
//----------------内容如下  end
 
#2. 重新启动mysql,并登陆mysql执行如下命令设置指定用户的新密码
mysql> update mysql.user set authentication_string=password('new_password') where user='root' and Host ='localhost';
 
#3. 刷新权限
mysql> FLUSH PRIVILEGES;
 
#4. 找到[mysqld]在下刚刚添加的参数配置并将其注释掉
//----------------内容如下  begin
[mysqld]
#skip-grant-tables
//----------------内容如下  end
 
 
  


---------------------------------------------------------------------------------------------
不忘初心 方得始终!

唯有志存高远,方能风行天下。

道之所存,虽千万人吾往矣! 情之所钟,虽千万里吾念矣~

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。