MySQL 安装Shell

安装MySQL Shell
这里将介绍如何下载、安装和启动MySQL Shell。MySQL Shell是一个交互式的JavaScript、Python或SQL接口,支持MySQL服务器的开发和管理。 MySQL Shell是一个可以单独安装的组件。

在Microsoft Windows上安装MySQL Shell
在Microsoft Windows上使用MSI Installer安装MySQL Shell,请执行以下操作:
1.从http://dev.mysql.com/downloads/ shell/下载Windows(x86, 64位),MSI安装包。
2.当出现提示时,单击Run。
3.按照安装向导中的步骤操作。

如果安装MySQL时没有启用X插件,然后决定安装X插件,或者如果安装MySQL时没有使用MySQL安装程序,请参见安装X插件。

Linux下安装MySQL Shell
对于支持的Linux发行版,在Linux上安装MySQL Shell最简单的方法是使用MySQL APT存储库或MySQL Yum存储库。对于不使用MySQL存储库的系统 ,也可以直接下载并安装MySQL Shell。

使用MySQL APT存储库安装MySQL Shell
对于MySQL APT库支持的Linux发行版,请遵循以下路径之一:
.如果你的系统还没有MySQL APT存储库作为软件存储库,请执行以下操作:

.请按照“添加MySQL APT存储库”中的步骤进行操作,需要特别注意以下事项:
.在安装配置包的过程中,当在对话框中被要求配置存储库时,请确保选择MySQL 5.7(这是默认选项)作为你想要的发行版系列,并启用MySQL Preview Packages组件。

.确保您没有跳过更新MySQL APT存储库的包信息的步骤:

sudo apt-get update

.用这个命令安装MySQL Shell:

sudo apt-get install mysql-shell

.如果你的系统上已经有MySQL APT存储库作为软件存储库,请执行以下操作:
.更新MySQL APT仓库的包信息:

sudo apt-get update

.使用以下命令更新MySQL APT存储库配置包:

 sudo apt-get install mysql-apt-config

当在对话框中被要求配置存储库时,请确保选择MySQL 5.7(这是默认选项)作为你想要的发行版系列,并启用MySQL Preview Packages组件。

.用这个命令安装MySQL Shell:
用这个命令安装MySQL Shell:

使用MySQL Yum存储库安装MySQL Shell
对于MySQL Yum支持的Linux发行版,按照以下步骤安装MySQL Shell:
.执行下列操作之一:
.如果您已经将MySQL Yum存储库作为系统上的软件存储库,并且该存储库配置了新的发布包mysql57-community-release,则跳过下一步(“启 用MySQL工具预览子存储库……”)。

.如果你已经将MySQL Yum存储库作为软件存储库安装在你的系统上,但已经配置了旧的发布包MySQL -community-release,安装MySQL Shell最 简单的方法是先用新的mysql57- community-release包重新配置MySQL Yum存储库。为此,您需要先删除旧的发行版包,使用以下命令:

 sudo yum remove mysql-community-release

对于启用了dnf的系统,可以这样做:

 sudo dnf erase mysql-community-release

然后,按照添加MySQL Yum存储库的步骤安装新的发布包mysql57-community-release。

.如果系统中还没有MySQL Yum存储库作为软件存储库,请按照添加MySQL Yum存储库的步骤操作。

.启用MySQL Tools预览子存储库。你可以手动编辑/etc/yum.repos.d/mysql-community.repo文件。这是文件中子仓库默认条目的一个例子(文 件中的baseurl条目可能看起来不同,这取决于你的Linux发行版):

[mysql-tools-preview]
name=MySQL Tools Preview
baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/6/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

将条目enabled=0更改为enabled=1以启用子存储库。

.用这个命令安装MySQL Shell:

sudo yum install mysql-shell

对于启用dnf的系统,可以这样做:

sudo dnf install mysql-shell

从MySQL Developer专区直接下载安装MySQL Shell
MySQL Shell的RPM、Debian和源码包也可以从download MySQL Shell下载。

MySQL 安装X插件

MySQL要安装内置的X Plugin,有以下三种方式:
.使用MySQL Windows安装程序
a.启动MySQL安装程序。MySQL安装程序仪表板打开。
b.单击MySQL Server的Reconfigure快速操作。使用“下一步”和“返回”配置以下内容:
.在“帐户和角色”中确认当前root帐户的密码。
.在“插件和扩展”中,勾选“启用X协议/MySQL作为文档存储”复选框。MySQL安装程序提供一个默认端口号,并打开防火墙端口供网络访问。
.在“应用服务器配置”中单击“执行”。
c.安装MySQL Shell。

.使用MySQL Shell
a.安装MySQL Shell

[root@localhost ~]# rpm -ivh mysql-shell-8.0.41-1.el7.x86_64.rpm

b.打开终端窗口(Windows上的命令提示符),导航到MySQL二进制文件位置(例如,Linux上的/usr/bin/)。

c.执行如下命令:

[root@localhost ~]# mysqlsh -u root -h 10.18.10.20 -P 3306 --classic --dba enableXProtocol
WARNING: The --classic option was deprecated, please use --mysql instead. (Option has been processed as --mysql).
Please provide the password for 'root@10.18.10.20:3306': ******
Save password for 'root@10.18.10.20 :3306'? [Y]es/[N]o/Ne[v]er (default No): N
enableXProtocol: Installing plugin mysqlx...
enableXProtocol: Verifying plugin is active...
enableXProtocol: successfully installed the X protocol plugin!

[root@localhost ~]# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:24903           0.0.0.0:*               LISTEN      30883/mysqld
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      8407/mysqld
tcp        0      0 0.0.0.0:3307            0.0.0.0:*               LISTEN      8444/mysqld
tcp        0      0 0.0.0.0:3308            0.0.0.0:*               LISTEN      30883/mysqld
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1584/sshd
tcp        0      0 0.0.0.0:24901           0.0.0.0:*               LISTEN      8407/mysqld
tcp        0      0 0.0.0.0:24902           0.0.0.0:*               LISTEN      8444/mysqld
tcp6       0      0 :::22                   :::*                    LISTEN      1584/sshd
tcp6       0      0 :::33060                :::*                    LISTEN      8407/mysqld

33060端口就是X插件所占用的端口。
.使用MySQL客户端程序:
a.打开终端窗口(Windows上的命令提示符),导航到MySQL二进制文件位置(例如,Linux上的/usr/bin/)。

b.调用mysql命令行客户端:

[root@localhost ~]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 5.7.26-log Source distribution

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

c.执行以下语句:

mysql> INSTALL PLUGIN mysqlx SONAME 'mysqlx.so';
Query OK, 0 rows affected (0.14 sec)

mysql>

[mysql@localhost mysql]$ netstat -ltnp
(No info could be read for "-p": geteuid()=27 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -
tcp6       0      0 :::3306                 :::*                    LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 ::1:631                 :::*                    LISTEN      -
tcp6       0      0 :::33060                :::*                    LISTEN      -

33060端口就是X插件所占用的端口。
d.安装MySQL Shell。

[root@localhost ~]# rpm -ivh mysql-shell-8.0.41-1.el7.x86_64.rpm

3.验证X Plugin是否已经安装。
当X Plugin安装正确时,当您使用以下命令之一查询服务器上的活动插件时,它会显示在列表中:
.MySQL Shell命令:

[root@localhost ~]# mysqlsh -u root -h 10.18.10.20  -P 3306 --sqlc -e "show plugins"
Please provide the password for 'root@10.18.10.20 :3306': ******
Save password for 'root@10.18.10.20 :3306'? [Y]es/[N]o/Ne[v]er (default No): N
Name    Status  Type    Library License
binlog  ACTIVE  STORAGE ENGINE  NULL    GPL
mysql_native_password   ACTIVE  AUTHENTICATION  NULL    GPL
sha256_password ACTIVE  AUTHENTICATION  NULL    GPL
CSV     ACTIVE  STORAGE ENGINE  NULL    GPL
MEMORY  ACTIVE  STORAGE ENGINE  NULL    GPL
InnoDB  ACTIVE  STORAGE ENGINE  NULL    GPL
INNODB_TRX      ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_LOCKS    ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_LOCK_WAITS       ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_CMP      ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_CMP_RESET        ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_CMPMEM   ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_CMPMEM_RESET     ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_CMP_PER_INDEX    ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_CMP_PER_INDEX_RESET      ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_BUFFER_PAGE      ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_BUFFER_PAGE_LRU  ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_BUFFER_POOL_STATS        ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_TEMP_TABLE_INFO  ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_METRICS  ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_FT_DEFAULT_STOPWORD      ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_FT_DELETED       ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_FT_BEING_DELETED ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_FT_CONFIG        ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_FT_INDEX_CACHE   ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_FT_INDEX_TABLE   ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_SYS_TABLES       ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_SYS_TABLESTATS   ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_SYS_INDEXES      ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_SYS_COLUMNS      ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_SYS_FIELDS       ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_SYS_FOREIGN      ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_SYS_FOREIGN_COLS ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_SYS_TABLESPACES  ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_SYS_DATAFILES    ACTIVE  INFORMATION SCHEMA      NULL    GPL
INNODB_SYS_VIRTUAL      ACTIVE  INFORMATION SCHEMA      NULL    GPL
MyISAM  ACTIVE  STORAGE ENGINE  NULL    GPL
MRG_MYISAM      ACTIVE  STORAGE ENGINE  NULL    GPL
PERFORMANCE_SCHEMA      ACTIVE  STORAGE ENGINE  NULL    GPL
ARCHIVE ACTIVE  STORAGE ENGINE  NULL    GPL
BLACKHOLE       ACTIVE  STORAGE ENGINE  NULL    GPL
FEDERATED       DISABLED        STORAGE ENGINE  NULL    GPL
partition       ACTIVE  STORAGE ENGINE  NULL    GPL
ngram   ACTIVE  FTPARSER        NULL    GPL
group_replication       ACTIVE  GROUP REPLICATION       group_replication.so    GPL
mysqlx  ACTIVE  DAEMON  mysqlx.so       GPL

.MySQL Client程序命令:

[root@localhost ~]# mysql -h 10.18.10.20  -P 3306 -u root -p -e "show plugins"
Enter password:
+----------------------------+----------+--------------------+----------------------+---------+
| Name                       | Status   | Type               | Library              | License |
+----------------------------+----------+--------------------+----------------------+---------+
| binlog                     | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     |
| mysql_native_password      | ACTIVE   | AUTHENTICATION     | NULL                 | GPL     |
| sha256_password            | ACTIVE   | AUTHENTICATION     | NULL                 | GPL     |
| CSV                        | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     |
| MEMORY                     | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     |
| InnoDB                     | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     |
| INNODB_TRX                 | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_LOCKS               | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_LOCK_WAITS          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_CMP                 | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_CMP_RESET           | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_CMPMEM              | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_CMPMEM_RESET        | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_CMP_PER_INDEX       | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_CMP_PER_INDEX_RESET | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_BUFFER_PAGE         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_BUFFER_PAGE_LRU     | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_BUFFER_POOL_STATS   | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_TEMP_TABLE_INFO     | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_METRICS             | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_FT_DEFAULT_STOPWORD | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_FT_DELETED          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_FT_BEING_DELETED    | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_FT_CONFIG           | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_FT_INDEX_CACHE      | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_FT_INDEX_TABLE      | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_SYS_TABLES          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_SYS_TABLESTATS      | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_SYS_INDEXES         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_SYS_COLUMNS         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_SYS_FIELDS          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_SYS_FOREIGN         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_SYS_FOREIGN_COLS    | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_SYS_TABLESPACES     | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_SYS_DATAFILES       | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| INNODB_SYS_VIRTUAL         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     |
| MyISAM                     | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     |
| MRG_MYISAM                 | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     |
| PERFORMANCE_SCHEMA         | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     |
| ARCHIVE                    | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     |
| BLACKHOLE                  | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     |
| FEDERATED                  | DISABLED | STORAGE ENGINE     | NULL                 | GPL     |
| partition                  | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     |
| ngram                      | ACTIVE   | FTPARSER           | NULL                 | GPL     |
| group_replication          | ACTIVE   | GROUP REPLICATION  | group_replication.so | GPL     |
| mysqlx                     | ACTIVE   | DAEMON             | mysqlx.so            | GPL     |
+----------------------------+----------+--------------------+----------------------+---------+

mysqlxsys@localhost用户帐号
安装X插件会创建一个mysqlxsys@localhost用户帐户。如果由于某种原因,创建用户帐户失败,X插件安装也会失败。下面是关于 mysqlxsys@localhost用户帐户的用途以及在创建失败时该怎么办的解释。

X 插件的安装过程使用 MySQL root账户为 `mysqlxsys@localhost` 用户创建一个内部账户。`mysqlxsys@localhost` 账户由 X 插件用于外部 用户对 MySQL 账户系统的身份验证,以及在特权用户请求时终止会话。`mysqlxsys@localhost` 账户创建时处于锁定状态,因此外部用户无法 使用它登录。如果由于某种原因 MySQL root账户不可用,在启动 X 插件安装之前,您必须在 `mysql` 命令行客户端中执行以下语句手动创建 `mysqlxsys@localhost` 用户:

mysql> CREATE USER IF NOT EXISTS mysqlxsys@localhost IDENTIFIED WITH mysql_native_password AS '123456' ACCOUNT LOCK;
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT SELECT ON mysql.user TO mysqlxsys@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SUPER ON *.* TO mysqlxsys@localhost;
Query OK, 0 rows affected (0.01 sec)

MySQL Shell全局变量

MySQL Shell全局变量
MySQL Shell保留一些变量作为全局变量,这些变量被分配给脚本中常用的对象。本节描述可用的全局变量,并提供使用它们的示例。全局变量是:
.session 表示全局会话(如果已建立)
.db 表示已定义的模式,例如由URI定义的模式。

MySQL Shell为与使用全局变量相关的常见情况提供交互式错误解决方案。例如:
.试图使用未定义的session全局变量
.试图使用session检索不存在的模式
.试图使用未定义的db全局变量

未定义的全局会话
全局session变量在全局会话建立时设置。建立全局会话后,在MySQL Shell中使用session语句显示会话类型及其URI:

mysql-js> session

mysql-js>

如果没有建立全局会话,MySQL Shell显示如下信息:

mysql-js> session

mysql-js>

如果在没有建立全局会话的情况下试图使用session变量,则会启动交互式错误解析,并提示您提供建立全局会话所需的信息。如果会话成功建立,它会被赋值给session变量。提示如下:
.初始提示解释说没有建立全局会话,并询问是否应该建立全局会话。
.如果选择设置全局会话,则请求会话类型
.请求存储的会话的URI或别名
.如果需要,则需要密码

例如:

mysql-js> session.uri
The global session is not set, do you want to establish a session? [y/N]: y
Please specify the session type:
1) X
2) Node
3) Classic
Type: 2
Please specify the MySQL server URI (or $slias): root@localhost
Enter password:*******
root@localhost:33060
mysql-js>

未定义db变量
在建立全局会话并配置默认模式时,将设置global db变量。例如,使用root@localhost/sakila这样的URI建立一个全局会话,连接到localhost上的MySQL服务器,端口为33060。作为root用户,将模式sakila分配给全局变量db。定义好模式后,在MySQL Shell提示符下执行db命令会打印出模式名,如下所示:

mysql-js> db

mysql-js>

如果未建立全局会话,则显示如下信息:

mysql-js> db

mysql-js>

如果在没有建立全局会话的情况下尝试使用db变量,则会显示以下错误:

mysql-js> db.getCollections()
LogicError: The db variable is not set, establish a global session first.
at (shell):1:2
in db.getCollections()

如果已经建立了全局会话,但您试图使用未定义的数据库,则开始交互式错误解决,并提示您通过提供模式名称来定义活动模式。如果成功,则将db变量设置为定义的模式。例如:

mysql-js> db.getCollections()
The db variable is not set, do you want to set the active schema? [y/N]:y
Please specify the schema:world_x
[

]
mysql-js> db

mysql-js>

检索一个不存在的模式
如果尝试使用会话检索不存在的模式,交互式错误解决方案提供了创建模式的选项。

mysql-js> var mySchema = session.getSchema('my_test')
The schema my_test does not exist, do you want to create it? [y/N]: y
mysql-js> mySchema

mysql-js>

在所有情况下,如果您不提供解决每种情况所需的信息,则在未定义的变量上执行请求的语句将显示正确的结果。

MySQL Shell连接

MySQL Shell连接
MySQL Shell可以配置为在启动应用程序时使用命令选项连接到MySQL服务器,或者在MySQL Shell内部使用\connect命令连接到MySQL服务器。您 想要连接的MySQL服务器的地址可以使用单独的参数来指定,例如用户,主机名和端口,或者使用统一资源标识符(URI),格式为 user@host:port/schema,例如mike@myserver:33060/testDB。以下部分描述这些连接方法。

无论选择哪种方法连接,了解MySQL Shell如何处理密码都是很重要的。默认情况下,假定连接需要密码。在登录提示时要求输入密码。要指定 无密码帐户,请使用——password选项而不指定密码,或者在URI中的用户后面使用:而不指定密码。

如果您没有为连接指定参数,则使用以下默认值:
.user默认为当前系统用户名
.host默认为localhost
.port在使用X Session时默认为X Plugin端口33060,在使用Classic Session时默认为端口3306

使用X协议的MySQL Shell连接总是使用TCP,不支持使用Unix套接字。MySQL当满足以下条件时,Shell连接使用MySQL协议默认使用Unix套接字:
.–port未指定
.–host未指定或者为localhost
.–socket为到套接字提供了路径
.–classic被指定
如果指定了–host,但它不是localhost,则建立TCP连接。在这种情况下,如果没有指定–port,则使用默认值3306。如果满足套接字连接的条 件,但没有指定–socket,则使用默认套接字

使用URI字符串进行连接
通过使用–uri命令选项以字符串格式传递连接数据,可以配置MySQL Shell连接到的MySQL服务器。

使用以下格式:

[dbuser[:[dbpassword]]@]host[:port][/schema]

这些选项的说明:
.dbuser:指定认证过程中使用的MySQL用户帐号
.dbpassword:指定要用于身份验证过程的用户密码,不建议将密码存储在URI中。
.host:指定会话对象所连接的主机。如果未指定,则默认使用localhost。
.port:指定目标MySQL服务器正在监听连接的端口。如果没有指定,33060默认用于启用X协议的会话,而3306是传统MySQL协议会话的默认值。
.schema:指定会话建立时要设置为默认的数据库

如果没有使用URI指定密码(建议这样做),则会提示输入密码。下面的示例展示了如何使用这些命令选项:
.连接到端口33065的 Node 会话

[root@localhost ~]# mysqlsh --uri root@10.13.13.25:33065 --node
WARNING: The --node option was deprecated, please use --mysqlx instead. (Option has been processed as --mysqlx).
Please provide the password for 'root@localhost:33065': ******
MySQL Shell 8.0.41

Copyright (c) 2016, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
Creating an X protocol session to 'root@localhost:33065'
Fetching schema names for auto-completion... Press ^C to stop.
Your MySQL connection id is 31
Server version: 5.7.26-log Source distribution
No default schema selected; type \use  to set one.
 MySQL  10.13.13.25:33065  JS >

.连接一个经典会话。

[root@localhost ~]# mysqlsh --uri root@10.13.13.25 --classic
WARNING: The --classic option was deprecated, please use --mysql instead. (Option has been processed as --mysql).
Please provide the password for 'root@10.13.13.25': ******
Save password for 'root@10.13.13.25'? [Y]es/[N]o/Ne[v]er (default No): N
MySQL Shell 8.0.41

Copyright (c) 2016, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
Creating a Classic session to 'root@10.13.13.25'
Fetching schema names for auto-completion... Press ^C to stop.
Your MySQL connection id is 32
Server version: 5.7.26-log Source distribution
No default schema selected; type \use  to set one.
 MySQL  10.13.13.25:3306  JS >

虽然不建议使用无密码帐户,但也可以在用户名后使用“:”指定不需要密码的用户,例如:

[root@localhost ~]#mysqlsh --uri user:@localhost

使用单个参数进行连接
除了使用URI指定连接参数之外,还可以为每个值使用单独的参数定义连接数据
使用以下参数:
.–dbuser (-u) value
.–dbpassword value
.–host (-h) value
.–port (-P) value
.–schema (-D) value
.–password (-p)
.–socket (-S)

前5个参数匹配URI格式中使用的令牌,参数–password表示用户连接时不需要密码,为保持一致性,部分参数支持以下别名:
.–user相当于–dbuser
.–password 相当于 –dbpassword
.–database 相当于 –schema

当以多种方式指定参数时,适用以下规则:
.如果多次指定参数,则使用最后一次出现的值
.如果同时指定了各个连接参数和–uri,那么–uri的值将被视为基础,而各个参数的值会覆盖基础URI中的特定组件。

尝试在端口33065上与指定用户建立XSession。

[root@localhost ~]# mysqlsh -u root -h 10.13.13.25 -P 33065
Please provide the password for 'root@10.13.13.25:33065': ******
MySQL Shell 8.0.41

Copyright (c) 2016, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
Creating a session to 'root@10.13.13.25:33065'
Fetching schema names for auto-completion... Press ^C to stop.
Your MySQL connection id is 34
Server version: 5.7.26-log Source distribution
No default schema selected; type \use  to set one.
 MySQL  10.13.13.25:33065  JS >

尝试与指定用户建立经典会话

[root@localhost ~]# mysqlsh -u root -h 10.13.13.25 --classic
WARNING: The --classic option was deprecated, please use --mysql instead. (Option has been processed as --mysql).
Please provide the password for 'root@10.13.13.25': ******
Save password for 'root@10.13.13.25'? [Y]es/[N]o/Ne[v]er (default No): N
MySQL Shell 8.0.41

Copyright (c) 2016, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
Creating a Classic session to 'root@10.13.13.25'
Fetching schema names for auto-completion... Press ^C to stop.
Your MySQL connection id is 35
Server version: 5.7.26-log Source distribution
No default schema selected; type \use  to set one.
 MySQL  10.13.13.25:3306  JS >

尝试与指定用户建立节点会话

[root@localhost ~]# mysqlsh --node -u root -h 10.13.13.25
WARNING: The --node option was deprecated, please use --mysqlx instead. (Option has been processed as --mysqlx).
Please provide the password for 'root@10.13.13.25': ******
MySQL Shell 8.0.41

Copyright (c) 2016, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
Creating an X protocol session to 'root@10.13.13.25:33060'
Fetching schema names for auto-completion... Press ^C to stop.
Your MySQL connection id is 36
Server version: 5.7.26-log Source distribution
No default schema selected; type \use  to set one.
 MySQL  10.13.13.25:33060  JS >