在 MySQL Shell 8.0.14 到 8.0.19 的版本中,只能为使用经典 MySQL 协议的连接请求压缩。默认是不请求压缩。这些版本中的压缩使用 zlib 压缩算法。您不能在这些版本中要求压缩,因此如果服务器不支持压缩,会话将回退到未压缩的连接。
在这些 MySQL Shell 版本中,压缩控制仅限于为连接启用(通过指定true
)或禁用(通过指定false
)压缩。如果您使用具有此压缩控制的 MySQL Shell 版本连接到 MySQL 8.0.18 或更高版本的服务器实例,其中支持压缩算法的客户端请求,启用压缩等同于提出算法集
zlib
,uncompressed
。
MySQL Shell 不能在 8.0.14 之前的版本中请求压缩。
要请求压缩 MySQL Shell 8.0.14 到 8.0.19 中的连接,请使用以下方法之一:
-
如果从命令行启动 MySQL Shell 并使用单独的命令选项指定连接参数,请使用
--compress
(-C
) 选项,例如:$> mysqlsh --mysql -u user -h localhost -C
-
如果您使用类似 URI 的连接字符串来指定连接参数,无论是从命令行、MySQL Shell 的
\connect
命令还是shell.connect()
方法,请compression=true
在查询字符串中使用参数:mysql-js> \connect user@example.com?compression=true
$> mysqlsh mysql://user@localhost:3306?compression=true
-
如果您使用键值对指定连接参数,无论是使用 MySQL Shell 的
\connect
命令还是mysql.getClassicSession()
方法,请使用compression
选项字典中的参数:mysql-js> var s1=mysql.getClassicSession({host: 'localhost', user: 'root', password: 'password', compression: 'true'});