mysql5.7 的官方文档_Mysql 5.7 官方文档翻译

始于 2017年4月1日-愚人节

1.1 MySQL 5.7 新功能

本章节介绍了MySQL 5.7 新版本中新增、废弃、删除的功能。 在1.5章节 Section 1.5, “Server and Status Variables and Options Added, Deprecated, or Removed in MySQL 5.7” 中可以获得详细信息。.

MySQL 5.7 新增功能

MySQL 5.7 废弃功能

MySQL 5.7 删除功能

MySQL 5.7 新增功能

以下是 MySQL 5.7新增的功能选项:

安全增强. :

该版本要求在mysql.user 中的plugin字段非空并且禁止accounts 为空值。 要查看server 升级的事项请看 2.11.1.1 章节Section 2.11.1.1, “Changes Affecting Upgrades to MySQL 5.7”. mysql 建议DBA 使用mysql_native_password 代替mysql_old_password.因为mysql_old_password 已经删除不再支持。 对于账户升级请查看7.5.1.3章节Section 7.5.1.3, “Migrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin”.

MySQL 现在允许数据库管理员利用策略创建一个自动过期的账户。任何连入数据库server的过期账户必须要修改密码。 在章节7.3.6 Section 7.3.6, “Password Expiration Policy”. 有详细介绍。

管理员能够锁定或者解锁,以便更你好的控制谁能登入,查看章节7.3.10 Section 7.3.10, “User Account Locking”. 有详细介绍。

为了更简单的支持安全连接,MySQL server 能够在启动的时候能够使用Openssl自动生成丢失的RSA 认证文件.在7.4.6.1 章节 Section 7.4.6.1, “Creating SSL and RSA Certificates and Keys using MySQL”. 有详细介绍。

所有server 不管是Openssl 或者yaSSL ,既是没有显式的配置SSL,当服务器启动的时候发现在数据目录有SSL 文件会舱室自动启用SSL 。在 7.4.4 章节 Section 7.4.4, “Configuring MySQL to Use Secure Connections”. 有详细介绍。

另外MySQL 还配置了一个包含mysql_ssl_rsa_setup 的功能包,这样使得你能够手动的创建SSL和RSA 密钥认证文件在章节5.4.5 Section 5.4.5, “mysql_ssl_rsa_setup — Create SSL/RSA Files”.有详细介绍。

MySQL 部署初始化使用 mysqld --initialize 做安全默认项. 下面列出的项是mysql 在部署的时候作为默认项目:

Mysql 初始化的时候只创建一个root 账户'root'@'localhost', 并为这个账户自动生成一个随机密码, 并将密码设置为过期状态. MySQL 管理员必须使用这个密码登入并设置要给新的密码,(服务器将随机密码写入error 日志文件中)

初始化的时候不会创建匿名账户。

初始化的时候不会创建test 库。

查看章节2.10.1.1 Section 2.10.1.1, “Initializing the Data Directory Manually Using mysqld”.有更多详细信息。

SQL mode 做了变更. STRICT_TRANS_TABLES 现在变更为默认.

ONLY_FULL_GROUP_BY SQL mode 更为精确, 以前版本拒绝的查询已经不在拒绝. 因此, 该模式默认是开启的, 现在只拒绝那些在组中不能保证是唯一的不确定的查询. ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, 和 NO_ZERO_IN_DATE SQL modes 现在已经废弃,默认启用。在以后的版本中计划中打算将他们加入 strict SQL mode 并且将他们显示的删除. 在 SQL Mode Changes in MySQL 5.7 该章节中有详细介绍。

可更改的系统默认的SQL mode 有: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and NO_ENGINE_SUBSTITUTION.

Online ALTER TABLE 在线修改表. alter table 命令现在能够通过rename index 来重命名索引的名称ALTER TABLE now supports a RENAME INDEX clause that renames an index. 该项更改是源修改模式(in-place)不需要表拷贝操作,对所有引擎有效。 该项更改是在内部修改(in-place)不需要复制表操作,对所有引擎有效。 在14.1.8 章节 Section 14.1.8, “ALTER TABLE Syntax”.有详细介绍。

ngram and MeCab full-text 分析插件. MySQL 提供了一个内置的全文 ngram 分析 插件 支持中文、日文、韩文和一个可安装的 MeCab 全文分析 日语插件。在13.9.8章节Section 13.9.8, “ngram Full-Text Parser”, 和13.9.9章节Section 13.9.9, “MeCab Full-Text Parser Plugin”.由详细描述。

InnoDB 增强. :

VARCHAR 字段的大小能够通过 ALTER TABLE,命令,以in-place 的方式修改, 例如 :

ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(255);

This is true as long as the number of length bytes required by a VARCHAR column remains the same.只要修改字段后字段varchar所占字节数和原先的相同就能实现,例如对于 VARCHAR 值在 0到 255,只需要一个bytes. 对于 VARCHAR 的值是 256 bytes 或者大于256 需要两个字节.这样的话,通过 in-place ALTER TABLE 只支持0到255 之间的修改,或者说256 以及大于256之间修改.in-place alter table 不支持小于256的varchar值变更为大于256的值。因为在这种情况下存储的字节会从1个字节变为两个字节。只能通algorithm=copy的方式修改,例如将varchar (255)的值修改到256 in-place alter would 会返回一个错误

ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(256);

ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot change

column type INPLACE. Try ALGORITHM=COPY.

使用IN-PLACE alter table 减少varchar 的大小是不支持的。减少字段大小需要复制表操作(ALGORITHM=COPY).

对于INNODB 引擎临时表的DLL CREATE TABLE, DROP TABLE, TRUNCATE TABLE, and ALTER TABLE 做了增强.

InnoDB 临时表的元信息现在不存放在 InnoDB 系统表中. 替代的是一张新表 INNODB_TEMP_TABLE_INFO, 可供查询到的是用户在使用的临时表snapshot . 这张表记录了所有用户和系统自己创建的在innodb 实例中的临时表信息。当第一次使用.当 当select 语句第一次运行的时候这张表就创建了

InnoDB 现在支持 空间数据 类型. 在这之前的版本, InnoDB 只能 将空间数据类型 做为二进制的 BLOB 来存储. BLOB 是基本的存储类型 但是空间数据类型类型现在已经作为一种新的 InnoDB 引擎内部数据类型, DATA_GEOMETRY.

对于所有没压缩的INNODB 引擎临时表 现在提供各自的表空间. 每当server startup 新的表空间都会重新创建,并且默认在DATADIR 指定目录. 一个新的参数 innodb_temp_data_file_path, 允许用户自定义临时表的存放地址.

innochecksum 功能现在做了增强并提供了几个新的参数扩展其能力。章节 5.6.1 Section 5.6.1, “innochecksum — Offline InnoDB File Checksum Utility”.有更详细信息。

对于普通的或者压缩的临时表以及相关的对象现在用一种新的non-redo undo log 存放在 临时表空间中. 章节15.4.12.1 Section 15.4.12.1, “InnoDB Temporary Table Undo Logs” 有详细信息.

InnoDB buffer pool 转储 和加载 做了加强.使用 innodb_buffer_pool_dump_pct,参数能够让你指定百分比的转储buffer_pool 中的数据 ,当操作的时候有其他的活动的IO操作在innodb 的后台。 INNODB 尝试使用 innodb_io_capacity

你可能感兴趣的:(mysql5.7,的官方文档)