MySQL 是基于 SQL(结构化查询语言)查询的关系数据库管理系统 (RDBMS)。它是访问和管理表中记录的最流行的语言之一。MySQL 是 GNU 许可下的开源和免费软件,目前由甲骨文提供支持。这是一个里程碑版本,不支持里程碑版本之间的升级,里程碑版本中发生了重大的开发更改,您可能会遇到兼容性问题,例如除了运行mysql_upgrade的常规过程之外需要注意的数据格式更改。例如,您可能会发现有必要在升级前使用mysqldump转储数据, 然后再重新加载。(无论如何,在升级之前进行备份是一种谨慎的预防措施。),MySQL 5.7和早期版本的区别如:
重要变化;复制: 如果从 SQL 线程正在应用大量更新,则
SHOW SLAVE STATUS当与并发运行时STOP SLAVE为了解决这个问题, 语句NONBLOCKING中添加了一个新选项SHOW SLAVE STATUS使用此选项时,SHOW SLAVE STATUS不在 SQL 或 I/O 线程上等待,而是立即返回。这意味着当使用该选项时,这些线程的报告状态可能不是完全最新的。NONBLOCKING主要供监控工具使用,在这些工具中,获得即时响应比拥有最及时的数据更重要。(错误 #15993588、错误 #67879)重要变化;复制: 添加了mysqlbinlog
--idempotent选项,使 MySQL 服务器采用幂等模式。这会导致在处理来自二进制日志的更新时抑制所有重复键和未找到键的错误。该模式仅对当前mysqlbinlog客户端和客户端会话有效。重要更改:
INSERT DELAYED不再支持。服务器识别但忽略DELAYED关键字,将插入作为非延迟插入处理,并生成ER_WARN_LEGACY_SYNTAX_CONVERTED警告。( “不再支持 INSERT DELAYED。该语句已转换为 INSERT。 ”)。同样,REPLACE DELAYED作为非延迟替换处理。该DELAYED关键字将在未来的版本中删除。此外,
DELAYED还删除了几个与 - 相关的选项或功能:mysqldump 的
--delayed-insert选项 。Performance Schema 表 的
COUNT_WRITE_DELAYED、SUM_TIMER_WRITE_DELAYED、MIN_TIMER_WRITE_DELAYED、AVG_TIMER_WRITE_DELAYED和MAX_TIMER_WRITE_DELAYED列 。table_lock_waits_summary_by_table如果您从早期版本升级到此 MySQL 版本,则必须运行mysql_upgrade(并重新启动服务器)以将这些更改合并到
performance_schema数据库中。mysqlbinlog不再写评论提到
INSERT DELAYED.以前,mysql 中的Control+C如果有则中断当前语句,如果没有则退出mysql。现在 Control+C会中断当前语句(如果有的话),否则取消任何部分输入行,但不会退出。(错误 #66583、错误 #14554568)
如果创建的索引与现有索引重复,或者在严格 SQL 模式下出现错误,服务器现在会发出警告。(错误 #37520、错误 #11748842)
mysql_clear_password明文客户端身份验证插件旨在用于要求服务器接收在客户端输入的密码而不进行散列的身份验证方案 。因为密码是明文发送的,所以这个插件应该在加密连接的上下文中使用,比如 SSL 连接,以避免在网络上暴露密码。为了减少无意中使用此插件的可能性,现在需要客户端明确启用它。这可以通过多种方式完成:将环境变量设置为以、或
LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN开头的值 。这将为所有客户端连接启用插件。1Yymysql、mysqladmin和mysqlslap客户端程序支持基于
--enable-cleartext-plugin每次调用启用插件的选项 。mysql_options()C API 函数支持MYSQL_ENABLE_CLEARTEXT_PLUGIN基于每个连接启用插件的选项 。此外,任何使用和读取选项文件的程序都可以通过在客户端库读取的选项组中libmysqlclient包含一个选项来启用插件 。enable-cleartext-plugin