MySQL Shell 8.0 Release Notes
Executing AdminAPI commands on a server with a version of Python lower than 2.7 was failing without the correct error message. (Bug #25975317)
When using MySQL Shell on Windows any files created or opened,
for example those used during
dba.createSandboxInstance()
, could not be
deleted.
(Bug #25789094)
The help for dba.configureLocalInstance(instance[,
options])
has been improved to describe the returned
JSON object.
(Bug #25703028)
When using dba.deploySandboxInstance()
and
passing in sandboxDir
, the specified path
must not exceed 89 characters.
(Bug #25485035)
removeInstance()
resulted in unexpected
behavior in some cases, for example when an empty password was
passed as part of the URI to the instance.
(Bug #25111911)
Creating Classic sessions that connect using Unix sockets now uses the correct defaults such as hostname. This resolves the previous limitation of using Unix sockets to connect to InnoDB cluster instances. See MySQL Shell Connections for information on how the defaults are applied to socket connections. (Bug #24848763, Bug #26036466)
References: See also: Bug #24911068.
On an instance configured as a multithreaded replica, in other
words slave_parallel_workers
set to greater than 0, and with
slave_parallel_type=DATABASE
,
dba.checkInstanceConfiguration()
was not
detecting that the instance was not correctly configured for
InnoDB cluster usage.
If removeInstance()
failed due to a
connection error, an error was reported but the instance was
incorrectly removed from the InnoDB cluster metadata, and
remained part of the replication group. The fix ensures the
metadata is correctly updated according to the result of
removeInstance
().
In a situation where a new primary instance was elected, adding a new instance to the cluster resulted in an error due to a failed connection to the previous primary instance.
The functions that modify server variables, such as
dba.createCluster()
and
dba.validateInstance()
now provide more
information in interactive mode output and log output about
server variables which are changed when executed.
Deploying instances to paths with directories that contained
spaces was failing without error. Use double backslash to
specify such paths, for example D:\\Cluster\\foo
bar
.
The Cluster object obtained from functions such as
dba.createCluster()
or
dba.getCluster()
became unusable once the
Shell session in which the object was created is was connected
to a different server. The fix modifies the Cluster object so
that:
The Cluster object holds an internal reference to the Session from which it was created or retrieved.
AdminAPI functions that modify the Cluster are made using the session referenced by the object.
Calling the modify()
or
remove()
function without a parameter caused
the function to be executed against the whole collection, which
could cause unexpected results such as deleting all rows in a
table. To avoid this and make the behavior consistent with
update()
and delete()
, a
client-side exception is now thrown if the
modify()
or remove()
function is called without a parameter. Now, to execute the
modify()
or remove()
function against a collection call them with an expression that
evaluates to true
, for example
remove('true')
or
modify('true')
.
(WL #10710)
The options in the MySQL Shell options dictionary are now fully documented. (Bug #25701345)
shell.connect()
did not report an error if an
invalid argument was used. An ArgumentError
is now issued for any invalid argument.
The following mutually exclusive pairs of options are now checked, and an error is issued if both are specified:
--password
and
--dbPassword
--user
and
--dbUser
(Bug #25268670)
References: See also: Bug #24911173.
A number of issues with the output of
shell.help("prompt")
have been corrected.
(Bug #25026855, Bug #25242638, Bug #25676343, Bug #25176769)
MySQL Shell now displays an invalid year as
0000
, matching the behavior of the MySQL
prompt, rather than as 0
.
(Bug #24912061)
MySQL Shell did not display fractional seconds for values in DATETIME columns. (Bug #24911885)
Some issues with the MySQL Shell command line help output were fixed. (Bug #24841749, Bug #24841493, Bug #24910540)
URIs were incorrectly parsed in MySQL Shell when passwords were hidden. (Bug #24793956)
mysqlsh stopped responding if the
\source
command was given a directory (rather
than file) argument.
(Bug #23097932, Bug #81060)