1、功能说明
升级mysql版本到5.7
2、操作说明
2.1 关掉服务器软件;
2.2 备份整个mysql文件夹;
2.3 解压mysql5.7.zip,重命名bin文件夹,新增放入5.7的bin文件夹;新增放入lib文件夹;
2.4 在控制台卸载mysql服务,再重装mysql服务;
2.5 在D:CMSServerV6\GPSDaemon.ini中添加配置项;
[CONFIG]
MYSQL_NATIVE=1

2.6 更改my.ini配置文件里面的如下两条配置项的路径为原来my.ini配置文件里面配置的路径;点击保存
basedir=”C:/Program Files/CMSServerV6/mysql/“
datadir=”C:/Program Files/CMSServerV6/mysql/gserver_dbdata/“
2.7 开启服务器软件
注:这一步需要确认MySQL数据的内存配置,会被重置为1G,需手动修改。
到这一步已经把软件的gpsmysqld.exe升级到5.7了,可以在任务管理器中查看:

但是此时进入到数据库里面进行相关操作的话,会出现1146报错:

然后用cmd指令执行下列命令:cd D:\Program Files\CMSServerV6\mysql\bin(指定程序mysql.exe路径)

最后用cmd指令执行下列命令:
mysql_upgrade -u root -pcmsserverv6

成功执行完成(如果数据库数据量比较大,升级需要的时间就会比较长)

同步升级系统数据库之后,再进入到数据库里面进行相关操作:(不会再出现1146报错)

出现Unknown error 1682报错,重启mysql服务即可
补充:
检测my.ini配置项是否生效的cmd语句:
先确认mysql.exe路径

然后用cmd指令执行下列命令
cd /d D:\CMSServerV6\mysql\bin(指定程序mysql.exe路径)

最后用cmd指令执行下列命令
mysql -u root -pcmsserverv6

show variables like '%default_password_lifetime%';

3、常见问题
一些比较常用的my.ini配置文件里面的配置项:
- 设置数据库密码有效期(单位天)
SET GLOBAL default_password_lifetime = 90;
- 查询数据库密码有效期(单位天)
show variables like '%default_password_lifetime%';
- 数据库系统对登录用户最大数量进行限制(单位个数)
max_connections
- 数据库系统配置合规的操作超时锁定(单位秒)
innodb_lock_wait_timeout
- 安装数据库密码复杂策略插件
INSTALL PLUGIN validate_password SONAME 'validate_password.dll';
- 二进制日志保存路径
log-bin ="D:/Program Files/CMSServerV6/mysql/log-bin/logbin.log"
- MySQL清除过期日志的时间,即二进制日志自动删除的天数。默认值为0,表示不自动删除,当MySQL启动或刷新二进制日志时可能删除该文件
expire_log_days = 7
- 单个文件的大小限制,写入的内容大小超出给定值,日志就会发生回滚(关闭当前文件,重新打开一个新的日志文件)。默认1GB, 不能大于1GB或小于4096B
max_binlog_size = 100M
- 开启保存慢日志
slow_query_log=ON
slow_query_log_file="D:/Program Files/CMSServerV6/mysql/slow_query/slow_query.log"
long_query_time=10
*以上路径如果缺少文件夹,需要手动创建,否则数据库无法正常启动

- 屏蔽密码验证
注:#skip-grant-tables
-
开启数据库SSL验证
在my.ini文件用#屏蔽skip_ssl参数,重启数据库

-
查询错误日志 log_error
mysql>show variables like ‘log_error’; - 查询日志 log
mysql>show variables like ‘log’; - 开启general日志
set global general_log=ON; - 查询general日志
show global variables like '%general%'; - 查询登录失败次数锁定
show variables like '%connection_control%'; - 设置登录失败次数、锁定时间
set GLOBAL connection_control_failed_connections_threshold=5;
set GLOBAL connection_control_max_connection_delay=500000;
set GLOBAL connection_control_min_connection_delay=300000; - 查询等待时间
show variables like '%timeout%'; - 查询慢日志状态
show VARIABLES like '%slow%'; - 查询二进制日志状态
show variables like 'log_bin';
SET GLOBAL expire_logs_days = 7; - 查询数据库密码策略状态
SHOW VARIABLES LIKE 'validate_password%'; - 查看ssl参数状态,查看have_ssl,为YES,这表示已经开始支持SSL了
show global variables like '%ssl%'; - 修改数据库密码策略
set global validate_password_policy=STRONG; - 关于 mysql 密码策略相关参数;
1)、validate_password_length 固定密码的总长度;
2)、validate_password_dictionary_file 指定密码验证的文件路径;
3)、validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)、validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM; - 关于 validate_password_policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6)、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数; - 开启数据库审计:
INSTALL PLUGIN server_audit SONAME 'server_audit.dll'; - 配置升级参数:
set global server_audit_events='CONNECT,QUERY,TABLE,QUERY_DDL';
set global server_audit_logging=on;
set global server_audit_file_rotate_now=on;
set global server_audit_file_rotations=200;
set global server_audit_file_rotate_size=1000001; -
查询审计状态:
show variables like '%audit%'; -
关闭审计日志:
SET GLOBAL general_log = 'OFF';
server_audit_events :指定记录事件的类型,可以用逗号分隔的多个值
server_audit_excl_users : 该列表的用户[行为]将不记录,connect信息将不受该设置影响
server_audit_file_path :使用该变量设置存储日志的文件,可以指定目录,默认存放在数据目录的server_audit.log文件中
server_audit_file_rotate_now :知否强制切割日志
server_audit_file_rotate_size :限制日志文件的大小
server_audit_file_rotations :指定日志文件的数量,如果为0日志将从不轮转
server_audit_incl_users :指定哪些用户的活动将记录,connect将不受此变量影响,该变量比server_audit_excl_users优先级高
server_audit_loc_info :
server_audit_logging :启动或关闭审计ON/OFFserver_audit_mode :标识版本,用于开发测试
server_audit_output_type: 指定日志输出类型,可为SYSLOG或FILE,当为syslog时记录到/var/log/messagesserver_audit_query_log_limit : 1024
server_audit_syslog_facility : LOG_USER
server_audit_syslog_ident : mysql-server _auditingserver_audit_syslog_info :
server_audit_syslog_priority : LOG_INFO
*需要在my.ini文件中加上以下默认配置项,否则重启数据库会导致配置参数失效
日志路径如果缺少文件夹,需要手动创建,否则数据库无法正常启动
[mysqld]
# 二进制日志保存路径
log-bin="F:/CMSServerV6/mysql/log-bin/logbin.log"
# 开启保存慢日志
slow_query_log=ON
slow_query_log_file="F:/CMSServerV6/mysql/slow_query/slow_query.log"
long_query_time=10
# 开启general日志
general_log=ON
# log文件所在位置
general_log_file="F:/CMSServerV6/mysql/tmp/mysql_log.log"
# 登录失败次数锁定
connection_control_failed_connections_threshold=5
connection_control_max_connection_delay=500000
connection_control_min_connection_delay=300000
# 数据库密码策略
validate_password_policy=STRONG
# 密码有效期
default_password_lifetime = 90
# 数据库审计配置
server_audit_events='CONNECT,QUERY,TABLE,QUERY_DDL'
server_audit_logging=on
server_audit_file_rotate_now=on
server_audit_file_rotations=200
server_audit_file_rotate_size=1000001