MySQL Shell 8.0.0-dmr has been released
Balasubramanian Kandasamy <[email protected]> Fri, 14 Jul 2017 18:30:15 +0530
| Newsgroups | gmane.comp.db.mysql.general,gmane.comp.db.mysql.packagers |
|---|---|
| Message-ID | <[email protected]> |
Dear MySQL users,
This is the first development release version of MySQL Shell 8.0
(a component of the MySQL Server). The MySQL Shell is provided under
Oracle's dual-license.
MySQL Shell is an interactive JavaScript, Python and SQL console
interface, supporting development and administration for the MySQL
Server. It provides scriptable API that supports the creation and
management of MySQL InnoDB clusters, as well as a modern fluent CRUD
API for the MySQL Document Store.
The AdminAPI provides an integrated solution for high availability and
scalability using InnoDB based MySQL databases, without requiring
advanced MySQL expertise.
The Document Store DevAPI enables developers and DBAs to create
"schema-less" JSON document collections and perform Create, Update,
Read, Delete (CRUD) operations on those collections with little to
no knowledge of the SQL language.
For more information on the APIs provided with MySQL Shell
see https://dev.mysql.com/doc/dev/mysqlsh-api-javascript/8.0/
and https://dev.mysql.com/doc/dev/mysqlsh-api-python/8.0/.
Additionally, MySQL Shell provides partial compatibility with the
mysql command line client by supporting many of the same command line
options. As with the mysql command line, MySQL Shell can also be used
to connect to and send SQL commands to pre-5.7.12 versions of the
MySQL server using the standard MySQL network protocol.
For more information about how to configure and work with an InnoDB cluster
see https://dev.mysql.com/doc/refman/en/mysql-innodb-cluster-userguide.html
For more information about how to use MySQL Shell and the MySQL Document
Store support see https://dev.mysql.com/doc/refman/en/document-store.html
For full documentation on MySQL Server, MySQL Shell and related topics,
see http://dev.mysql.com/doc/refman/en/
If you want to write applications that use the the CRUD based X DevAPI
use the latest MySQL Connectors for your language of choice. You can
also find documentation about Connectors in the MySQL documentation
site.
For more information about how to download MySQL Shell 8.0.0 dmr, see
the "Development Releases" tab at http://dev.mysql.com/downloads/shell/
We welcome and appreciate your feedback and bug reports, see
http://bugs.mysql.com/
Enjoy!
Changes in MySQL Shell 8.0.0 (2017-07-14, Development Milestone)
Functionality Added or Changed
* 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').
Bugs Fixed
* 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)
* The options in the MySQL Shell options dictionary are now
fully documented. (Bug #25701345)
* When using dba.deploySandboxInstance() and passing in
sandboxDir, the specified path must not exceed 89
characters. (Bug #25485035)
* 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
+ --port and --socket
(Bug #25268670)
References: See also: Bug #24911173.
* 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)
* 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)
* 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
(http://dev.mysql.com/doc/refman/8.0/en/mysql-shell-connections.html)
for information on how the defaults are
applied to socket connections. (Bug #24848763, Bug
#26036466)
References: See also: Bug #24911068.
* 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)
* On an instance configured as a multi-threaded slave, 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.
On Behalf of the MySQL/ORACLE RE Team
Balasubramanian Kandasamy